プログラミング zroff 警告: 関数がローカル変数のアドレスを返しています
ウンコな間違い
#include <stdio.h> char *message(void) { char message[] = "Hello"; return message; } int main(void) { char *m = message(); printf("%s\n", m); return 0; }
警告: 関数がローカル変数のアドレスを返しています
あたりまえすぐる。
returnされた時点で、messageは死んでるのに
こんな事も忘れているとは...
char *message(void) { char *message; message = (char *)malloc(20); message = "hello"; return message; } int main(void) { char *m = message(); printf("%s\n", m); return 0; }
mallocは大丈夫