私はこの非常に単純な例に最初は戸惑いましたが、最近は頭を悩ませています。誰かがこれらの機能の何が問題なのか教えてもらえますか?
注: 私は C で作業しています。これは必須です。
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
char* telegram_input()
{
char message[100];
printf("Write down the telegram: ");
gets(message);
return message;
}
int _tmain(int argc, _TCHAR* argv[])
}
printf("Write your message:\n\n");
char * myMessage;
myMessage = telegram_input();
//HERE's the problem!!!!! -->
printf("The written message is: %s.", myMessage);
return 0;
}
問題は、配列の値を char* ポインターに返すと、配列の最初の値のみが保持され、それが正しくないことです。「printf」で印刷すると、笑顔の文字が表示されます。それはどうですか?なぜこれが起こるのですか?上記の機能を使用していなければ、この問題は発生しませんでした。