嘿我收到这个错误:
error: conversion to non-scalar type requested
Run Code Online (Sandbox Code Playgroud)
这是我的结构:
typedef struct value_t value;
struct value{
void* x;
int y;
value* next;
value* prev;
};
typedef struct key_t key;
struct key{
int x;
value * values;
key* next;
key* prev;
};
Run Code Online (Sandbox Code Playgroud)
这是给我问题的代码:
struct key new_node = (struct key) calloc(1, sizeof(struct key));
struct key* curr_node = head;
new_node.key = new_key;
struct value head_value = (struct value) calloc(1, sizeof(struct value))
Run Code Online (Sandbox Code Playgroud)
我不是想在结构上使用calloc吗?此外,我有一个我已经创建的结构,然后我想将其设置为相同结构类型的指针,但得到一个错误.这是我正在做的一个例子:
struct value x;
struct value* y = *x;
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误
error: invalid type argument …Run Code Online (Sandbox Code Playgroud) 我环顾四周,似乎无法找到一个内部Windows版本独立的解决方案,以获取批处理文件中的计算机的IP地址.我想做的是,无论我使用的是哪台Windows机器(无论是运行7或XP还是98甚至98),我都希望能够找出ip地址并将其存储到变量中.时尚.
我可以使用ipconfig并解析出IPv4地址,但是Windows 7输出的内容与早期版本稍有不同,所以我首先要弄清楚它们的Windows版本,然后查找相应的字符串.任何帮助都会很棒!
我有一个矩阵Z,我想用surf命令绘制.我可以使用冲浪命令绘制它,但我希望Z的一部分不会出现在情节中.我假设我需要做的是使用符号
surf(X,Y,Z)
Run Code Online (Sandbox Code Playgroud)
其中X和Y是定义相应z值的(x,y)坐标的矩阵.我想知道的是我作为Z中不应绘制的点的(x,y)坐标,即x和y应该是什么都没有.
例如:
Z = 1 5 7
2 6 0
3 0 0
4 0 0
X = 1 1 1
2 2 _
3 _ _
4 _ _
Y = 1 2 3
1 2 _
1 _ _
1 _ _
Run Code Online (Sandbox Code Playgroud)
什么会在空间?我不能把数字设为0,因为所有的值都只会到原点.如果有更好的方法可以使用,我不必使用surf().
我试图在postgresql 8.3中终止会话(特定会话或所有会话,无关紧要),并且我很难做到这一点.我知道在较新版本(8.4及更高版本)中有一个pg_terminate_backend命令可以解决这个问题,但这在postgresql 8.3中不可用.如果我使用pg_stat_activity,我可以看到所有活动的会话但无法终止它们.
解决方案不一定是sql命令,但我希望它独立于正在使用的操作系统(即没有DOS/UNIX命令).
在Windows服务中停止和启动postgres服务可以很好地工作,但这是一种特定于操作系统的方法.但是,使用'pg_ctl restart -D DATA_DIR'不会停止服务.实际上,在我尝试执行此操作时,使用pg_ctl尝试重新启动服务会导致一些奇怪的行为.如果有一种方法我可以以某种方式使用pg_ctl来强制关闭进程,就像我假设windows一样,那么我可以使用它.
无论如何,我正在寻找一种方法来终止postgresql 8.3中不是特定于平台的一个或所有会话.任何帮助都会很棒!
我想做的是能够从文件中读取一行并将其粘贴到字符串数组中。这是我到目前为止所拥有的,但似乎不起作用。
...
char line [128];
char file [10][128];
plist = fopen("plist1.txt", "r");
while(fgets(line, sizeof line, plist) != NULL){
file[i][0]= line;
i++;
}
Run Code Online (Sandbox Code Playgroud)
我尝试这样做file[i][0] = *line;,并且能够打印出每行的第一个字符。这是做我想做的事情的最好方法吗?
另外,文本文件中的行数会有所不同,因此我希望数组的长度可变,而不是 10。
编辑:我尝试了下面列出的两种解决方案。两者都给我带来了处理 strcpy 或 fgets 的分段错误。
1. while (fgets(file[i], sizeof(file[i]), plist))
i++;
2. while (fgets(line, sizeof(line), plist)){
strcpy(file[i], line);
i++;
}
Run Code Online (Sandbox Code Playgroud) c ×2
arrays ×1
batch-file ×1
ip-address ×1
matlab ×1
plot ×1
pointers ×1
postgresql ×1
string ×1
struct ×1
windows ×1