我遇到了一个程序,该程序使用嵌入式 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,则值看起来是正确的,但在第二次 fetch 迭代之后,我列表中的第一个节点将反映来自第二次 fetch 的值,而不是第一个。
strcpy 将编译,但由于分段错误而在运行时失败,从这里阅读是由于使用了 char*,尽管我认为在使用嵌入式 SQL 获取数据时我不能使用 char[] 或字符串,所以这似乎是一个死胡同。
我敢肯定有办法做到这一点,这对大多数人来说可能很明显,但我不知所措。任何帮助,将不胜感激。
谢谢!