我被这个非常简单的例子打倒了,这个例子起初看起来很简单,但最近让我很头疼。有人能告诉我这些功能有什么问题吗?
注意:我正在使用 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'打印它时,它会显示一个笑脸字符。那个怎么样?为什么会这样?如果我没有使用上述功能,我就不会遇到这个问题。