簡體   English   中英

C pthread和malloc / seg錯誤錯誤的問題

[英]Issues with C pthreads and a malloc/seg fault error

我的C代碼有一些問題(這是該語言的新功能)。 我有以下代碼:..

RTSPClient *clientInfo = (RTSPClient*) malloc(sizeof(RTSPClient));
if (!clientInfo)
{
printf("There wasn't enough memory to fufill the connection.\n");
continue;
}
clientInfo->socket = new_fd;

pthread_create(&thread, NULL, handleClientConnection, (void *) clientInfo);

...

其中RTSPClient是以下內容

typedef struct {
    int socket;
    int session_id;
    PlaybackTimer* playback_timer;
    CvCapture* video;
} RTSPClient;

當我們嘗試訪問結構中的視頻字段時,我們遇到段錯誤。 顯然不是在正確分配內容,而是想知道如何解決此問題。 我是否需要在啟動線程之前為分配的clientInfo對象保留全局變量,還是需要靜態分配它?

任何幫助表示贊賞。

RTSPClient *clientInfo = (RTSPClient*) malloc(sizeof(RTSPClient)); 僅為clientInfo結構創建內存。 您還需要為CvCapture* video;分配內存CvCapture* video; 和所有其他指針。 (如果這樣做,請顯示更多代碼如何使用分配的結構)。

並且確定要在內存分配失敗的情況下continue嗎? 我認為,如果沒有足夠的內存,您應該中止您的應用程序...否則將無法正常工作。

(而且您不需要在C應用程序中malloc的返回值)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM