[英]Allocating array of strings
今天我在分配 char 的 arrays 數組(字符串數組)時遇到了麻煩,我寫了這個 function 來這樣做,但是在打印數組時,我遇到了 ZCD69B4957F06CD818D7BF3D691 的一些問題。 這是我的嘗試:
char **alloca_memoria(char **linguaggio,
int n_sequenze,
int *errore)
{
int i;
linguaggio = (char**) calloc( n_sequenze,
sizeof(char*));
if (linguaggio != NULL)
{
for ( i = 0;
i < n_sequenze;
i++ )
{
linguaggio[i] = (char*) calloc( MAX_SEQ ,
sizeof(char));
if ( linguaggio[i] == NULL )
*errore = 1;
else
*errore = 0;
}
}
else
*errore = 1;
return linguaggio;
}
我的目的只是讓它分配 memory 並返回值錯誤以檢查分配是否成功。 我真的找不到我做錯了什么。
ps n_sequenze
是字符串的實際數量, MAX_SEQ
是每個字符串的最大大小。
如果要更改 function 中傳遞的指針語言,則需要通過引用傳遞它。 例如
char **alloca_memoria(char ***linguaggio,
int n_sequenze,
int *errore)
{
int i;
*linguaggio = (char**) calloc( n_sequenze,
sizeof(char*));
//...
( *linguaggio )[i] = (char*) calloc( MAX_SEQ ,
sizeof(char));
//...
return *linguaggio;
}
或者最好像這樣聲明 function
char **alloca_memoria( int n_sequenze, int *errore)
{
//...
char **linguaggio = (char**) calloc( n_sequenze,
sizeof(char*));
//...
在調用者中你可以寫
char **linguaggio = alloca_memoria( n_sequenze, &errore );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.