需要帮助将c字符串从嵌入式SQL提取复制到单独结构中的另一个c字符串
Need help copying c-strings from embedded SQL fetch to another c-string in a separate struct
我遇到了一个程序,它使用嵌入式SQL从数据库表中提取行,将行数据存储在一个结构中,然后处理这些数据,将结果存储在另一个结构并推送到链表中。存储提取数据的结构如下:
struct rowstruct {
char *first;
char *last;
long amt;
} client;
我用来存储处理后的数据(然后作为链表中的节点推送)的结构如下:
struct mystruct {
char *firstN;
char *lastN;
long total;
} data;
我的问题是,对于发生的每个fetch循环,我需要将client.first和client.last值复制到data.firstN和data.lastN中,但我无法使其工作。下面使用赋值运算符,似乎只是在复制指针,而不是值:
data.firstN = client.first;
data.lastN = client.last;
如果我在循环的第一次迭代后输出data.firstN和data.lastN,这些值看起来是正确的,但在第二次提取迭代后,列表中的第一个节点将反映第二次获取的值,而不是第一次。
strcpy会编译,但在运行时由于分段错误而失败,从这里开始阅读是由于使用了char*,尽管我认为在使用嵌入式SQL获取数据时不能使用char[]或字符串,所以这似乎是一条死胡同。
我相信有办法做到这一点,这对这里的大多数人来说可能是显而易见的,但我不知所措。如有任何帮助,我们将不胜感激。
谢谢!
如果代码说要复制指针,那就是实际情况。
也许你想要的是类似的东西
data.firstN = strdup (client.first);
data.lastN = strdup (client.last);
有更多类似C++的方法可以做同样的事情,但这应该会让你度过难关。
您不需要重新声明结构。相反,您可以使用声明data
struct rowstruct data;
相关文章:
- 将字符串拆分为标记,并将标记拆分为两个单独的数组
- 如何将字符串和整数读取到两个单独的动态数组中的程序编写?
- 如何将整数值解析为逗号分隔字符串中的单独 int 变量?
- 为什么具有单独字符的字符数组不像字符串文字那样以 null 终止符结尾?
- 在 c++ 中将字符串拆分为单独的变量
- 需要帮助将c字符串从嵌入式SQL提取复制到单独结构中的另一个c字符串
- 正则表达式在开头单独匹配单词,或者在输入结束时通过不重复字符串附加到某些内容但附加到某些内容
- 使用C++预处理器从单独的组件构造版本字符串
- C++银行项目;如何将一组字符串读取为单独的浮点数并添加它们
- 如何将字符串(没有空格)拆分为单独的字符串
- 如何在 c++ 中将字符串分成单独的字符
- 将两个 '' 字符之间的子字符串提取到单独的数组中
- 如何拆分C++字符串以单独获取整个字符串及其某些部分/字符
- 如何解析用户的输入并将每个单独的字符存储为字符串
- 将单独文本文件的段落拆分为单独的字符串
- 布尔值转换为字符串,并将boolalpha与一个方法组合在一起,而不是在打印时单独键入它
- 如何将路径拆分为单独的字符串
- 从文件中读取行并存储在单独的字符串变量中
- 字符串标记为单独的变量
- 以字符串作为输入,但在c++中单独处理字符