【发布时间】:2018-05-08 10:40:32
【问题描述】:
我正在尝试构建一个从用户那里获得声明的程序
(例如:int x 或 char idan),然后打开一个新文件,并写入为声明分配内存所需的大小。
我几乎完成了所有工作,甚至在用户声明中充满空格的情况下,但我很难获得变量名的字符串。
我想创建一个函数,它将仅将变量名复制到一个名为var_name 的新字符串并返回它。我该怎么做?
*更新 - 2018 年 5 月 9 日
嘿,我找到了一种只复制部分字符串的方法:
strncpy(var_name, &declaration[7], count);
var_name[count + 1] = '\0';
现在当我返回 var_name 时(var_name 它是一个字符串) 它返回没问题,但是当我将它发送到另一个函数时,它变成了垃圾......
【问题讨论】:
-
您希望在哪种语言/环境中执行此操作?
-
在 C,Visual Studio 中
-
您的意思是要求您编写解析任意 C 变量声明的代码?
-
您很可能在某个函数中将
var_name声明为局部变量,这意味着它是在堆栈上分配的(在任何常见的现代 C 语言上都可以退出)。更有可能您需要使用malloc()或类似方法在堆上分配它。