0

ここで何が間違っているのか教えてもらえますか? 印刷時にテキストが表示されないprintf("%s\n",text[0]);

すべてのポインターを作成char **text;して編集しました。malloc

#include<stdio.h>
#include<string.h>
#include<stdlib.h>


char **text;

int main()
{
    int i; 
    text = malloc(20000);


    for(i=0; i < 20000; i++) {
        text[i] = malloc(4);

        memcpy(text[i], "test",4);
    }
    printf("%s\n",text[0]);
    printf("%s\n",text[1]);
}
4

2 に答える 2

2

私はあなたがこのようなものを探していると信じています:

int numElements = 20000, i;
// Allocate an array of char pointers
text = malloc(numElements * sizeof( char *)); 

for( i = 0; i < numElements; i++) {
    // 4 for the length of the string "test", plus one additional for \0 (NULL byte)
    text[i] = malloc( (4 + 1) * sizeof( char));
    memcpy( text[i], "test\0", 5);
}

出力が生成されるため、これが機能することを示すオンラインデモを次に示します。

test
test
于 2013-05-05T23:31:26.453 に答える