【发布时间】:2016-03-17 04:13:34
【问题描述】:
我想为 char* 做一个简单的输入。为什么这不起作用? 它引发了我无法解决的异常..
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
char* GetCharSeq()
{
char *s = (char*)malloc(100);
scanf_s("%s", s);
return s;
}
int main()
{
char* charseq;
charseq = GetCharSeq();
return 0;
}
【问题讨论】:
-
与您的问题无关,但对于系统头文件,您应该使用尖括号,例如
#include <stdio.h>,在 C 中你是 should not cast the result ofmalloc。 -
如果您遇到异常,也可以发布它
-
您应该始终检查返回码(例如
scanf_s's)。实际的例外是什么? -
@JoachimPileborg 对于他的例外来说,这可能不是真正的问题。并且铸造也不会造成伤害。
-
@AnishSharma 选角可以造成伤害,这就是问题所在。阅读已接受答案中的第二点。这绝对不是问题的根源,因为我已经添加了一个答案(还要注意评论中关于它与问题无关的起始免责声明)。