[英]I am trying to make a simple chat program with c and sockets. When I run it after a couple of things it says program received signal EXC_BAD_ACCESS
printf("what is your name?");
gets(send_name);
strcpy(send_name2, strcat("You are connected to ", send_name));
send(connected, send_name2, strlen(send_name2), 0);
其他可執行文件沒有收到我發送的信息...
nbytes_recieved = recv(sock, recv_name, 50 ,0);
recv_name[nbytes_recieved] = '\0';
這是我在客戶端代碼中用來使其接收字符串的代碼。
謝謝,Sidd
strcat
希望將可寫緩沖區作為其第一個參數。 您給它的是一個常量字符串,可能存儲在進程的只讀區域中的某個位置。 該函數嘗試在此常量字符串之后立即寫,這會導致內存訪問沖突。
EXC_BAD_ACCESS
等同於分段錯誤,通常是NULL指針取消引用或訪問未分配給進程的內存。 如果recv_name
太小而無法容納接收到的所有字節以及終止符'\\ 0',則可能導致這種情況。
要開始調試,請使用調試符號進行編譯,然后在該代碼中的各個點開始檢查recv_name的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.