簡體   English   中英

將字符串數組分配給char **

[英]Assigning string array to char**

我只是不能將字符串數組分配給我的char **指針。

我的字符串放在char *tempArr[12];

但是我不知道如何將它們分配給我的char ** arr變量。

首先,我使用以下方法分配內存: arr = (char**)malloc(numberOfElements * sizeof(char*));

然后,我嘗試為每個元素分配內存:

arr[i] = malloc(256 * sizeof(char));

我也嘗試只為char指針分配內存,但是都沒有用。 我的arr變量的結果是2到3個廢話字符。

有什么事嗎 我嘗試了所有我能找到的東西,結果是崩潰或廢話內容。

編輯:對不起,我會盡力澄清一下。 背景是,我正在將數據從文件加載到結構中。 每個結構都有char**變量,該變量應該保存字符串數組。

在我的閱讀代碼中,我正在使用臨時數組char* tempArr[12]並將字符串成功加載到其中。 然后,將其傳遞給創建結構的函數。

問題從這里開始,我試圖“轉換”我傳遞的數組,以便可以將其存儲在char** arr變量中。

char *tempArr[12];

是指針數組。 所以如果你有類似的東西

tempArr[0] = malloc(20);
strcpy(tempArr[0],"hello");

然后在您做完之后就可以做。 即在為您的指針arr[i]分配內存之后

char **arr = malloc(numberOfElements * sizeof(char*));

arr[i] = malloc(256);

strcpy(arr[i],tempArr[0]);

您可以循環執行上述步驟,以復制所有指針的值

我認為你的意思是

#include <string.h>

//...

size_t i;

char **arr = ( char** )malloc( numberOfElements * sizeof( char* ) );
for ( i = 0; i < numberOfElements; i++ ) arr[i] = malloc( 256 * sizeof( char ) );

for ( i = 0; i < sizeof( tempArr ) / sizeof( *tempArr ); i++ ) strcpy( arr[i], tempArr[i] );

暫無
暫無

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

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