1

これはCの私のコードで、配列サイズを動的に変更しようとしていますが、nullポインターになります。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *message = {"xxzz"};

message=realloc(message,5 * sizeof(*message));


if ( message == NULL)printf("Memory exhausted\n");

printf("%s",message);



return 0;
}
4

2 に答える 2

6

または他のメモリ割り当て関数reallocを使用してメモリが割り当てられたポインタのみを渡すことができます。 そうしないと、未定義動作が発生します。これがコードに含まれているものです。malloccalloc

于 2012-10-27T14:04:37.420 に答える
2

への変更

char *message = malloc(5);
于 2012-10-27T14:05:56.840 に答える