strlen()导致分段错误

问题描述 投票:-1回答:1

我已经过去了大约一个小时的时间,每个人似乎对此都有不同的答案,我看不到我的代码有什么问题,所以任何帮助将不胜感激]

void writerThread(void* context){
  struct connectionData *connectionData = context;
  const char payload = "<top secret payload>";
  if(write(connectionData->sockfd, payload, strlen(payload)) == -1){
    perror("failed to write to socket");
    return NULL;
  }

}

我也尝试过传递&payload到strlen,但这给了我一个糟糕的地址错误(因为它的长度小于我的缓冲区afaik的长度)。有任何想法吗?

c segmentation-fault strlen
1个回答
0
投票

由于@interjay和@HolyBlackCat,我现在已经解决了它>

我将const char payload = xxx更改为const char* payload = xxx。由于某些原因,我认为不可能将字符串分配给指针。了解的越多。

© www.soinside.com 2019 - 2024. All rights reserved.