![](/img/trans.png)
[英]UTHash Segmentation fault when modifying example using struct as key
[英]Segmentation fault when modifying struct in C
我正在為大學項目使用 C 開發客戶端/服務器聊天。
一切都很好,但我無法解決這個問題。
我創建了一個結構來存儲必須通信的兩個客戶端的 sockets:
typedef struct pairing_Clients{
int client1fd;
int client2fd;
} pairedClients;
當我在管理兩個客戶端之間的通信的 function 中使用它時,它給了我段錯誤。 我嘗試了以下幾行:
pairedClients *clients;
void client_handler(void *p_client) {
pairedClients *clients = (pairedClients *)malloc(sizeof(pairedClients));
clients->client1fd = 15;
}
我覺得很奇怪。 我看不出有什么大問題。 有什么幫助嗎?
分配時,您正在創建一個新變量,並且全局clients
未初始化。 由於上下文不清楚,我猜clients->client1fd = 15;
線與分配線不在同一個scope。
只需將malloc
行更改為:
clients = (pairedClients *)malloc(sizeof(pairedClients));
您還應該檢查malloc
的返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.