小编Aus*_*ton的帖子

C:Valgrind:使用大小为4的未初始化值和使用大小为4的未初始化值

这两个错误将出现一个链表/低级文件读/ strtok程序.

==10982== Use of uninitialised value of size 4
==10982==    at 0x40C3899: strtok (strtok.S:197)
==10982==    by 0x8048719: main (main.c:9)
==10982==  Uninitialised value was created by a stack allocation
==10982==    at 0x80487D2: buildList (functions.c:13)
==10982== 
==10982== Use of uninitialised value of size 4
==10982==    at 0x40C38C1: strtok (strtok.S:223)
==10982==    by 0x8048719: main (main.c:9)
==10982==  Uninitialised value was created by a stack allocation
==10982==    at 0x80487D2: buildList (functions.c:13)
==10982== 
==10982== Conditional jump or move depends on uninitialised value(s)
==10982==    at 0x40C38C4: …
Run Code Online (Sandbox Code Playgroud)

c valgrind

6
推荐指数
2
解决办法
5792
查看次数

Valgrind多次"无效写入/读取大小1"错误

我的程序从文件中读取人员并将其信息保存到Person结构中,如下所示:

struct person
{
    char *fname;
    char *lname;
    int id;
};
typedef struct person Person;
Run Code Online (Sandbox Code Playgroud)

这些人被保存在一组人员中,并且填充该数组的函数看起来像这样(总变量是从文件计算的人员总数):

Person* fillArray(int total, FILE *fin)
{
    rewind(fin);
    int i;
    char temp[50];
    char temp2[50];
    Person *p = (Person*) calloc(total, sizeof(Person));
    for(i = 0; i < total; i++)
    {
        fscanf(fin, "%s", temp);
        p[i].fname = (char *) calloc(strlen(temp)+1, sizeof(char));
        strcpy(p[i].fname, temp);
        fscanf(fin, "%s", temp2);
        p[i].lname = (char *) calloc(strlen(temp)+1, sizeof(char));
        strcpy(p[i].lname, temp2);
        fscanf(fin, "%d", &(p + i)->id);
    }
    return p;
}
Run Code Online (Sandbox Code Playgroud)

我清理了所有使用的内存,并在temp字符串末尾的'\ 0'中调用了calloc.不知道为什么我会收到这些错误:

HEAP SUMMARY:
==4736==     in …
Run Code Online (Sandbox Code Playgroud)

c valgrind

4
推荐指数
1
解决办法
2万
查看次数

java有频率表吗?

Java是否有内置的频率表?我记得在我的一个类中使用了一个,我知道Python有一个,但是我不记得我是自己构建了一个还是Java有一个可以使用.

java object

3
推荐指数
1
解决办法
1778
查看次数

使用另一个表中的列和新值"插入"语法

我有一张student桌子和一张takes桌子.该takes表适用于学生已经或正在学习的课程,并且有专栏:

ID, course_id, sec_id, semester, year, grade
Run Code Online (Sandbox Code Playgroud)

我想使用IDfrom student然后用于其他5列使用:

(CS-001, 1, Fall, 2009, NULL)
Run Code Online (Sandbox Code Playgroud)

我知道如何使用insert into takes select, from, where,而且insert into takes values()我还没有看到任何混合来自另一个表的数据以及我放入的新数据.我们正在做的实验应该是在MySQL查询中使用phpMyAdmin完成的.

我很难解释事情,所以如果这没有意义,我很抱歉.谢谢您的帮助.

这是我想要的那种查询:

insert into takes(ID, course_id, sec_id, semester, year, grade)
values(*IDs from student table*, CS-001, 1, Fall, 2009, NULL);
Run Code Online (Sandbox Code Playgroud)

mysql

2
推荐指数
1
解决办法
4604
查看次数

标签 统计

c ×2

valgrind ×2

java ×1

mysql ×1

object ×1