作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 child 之间传递值,并且需要存储一些值以供以后使用。
函数的定义和使用
char fouts[MAX_SIZE][10];
我为数组赋予值的函数:
void connect(char *nodo, char *out[], int nouts) {
(...)
for(i=0;i<nouts;i++) {
fouts[fnum][i] = out[i];
}
(...)
以及我尝试使用它们的函数:
void disconnect(char *nodo, char *remover){
char *outs[10];
nouts = fnouts[getfnum];
int m =0;
for(i=0;i<nouts;i++) {
if(strcmp(fouts[getfnum][i],nodo) != 0) { outs[m] = fouts[getfnum][i]; m++ ; }
}
无论我做什么来尝试修复每次它尝试执行最后一个,它都会给出段错误。
尝试过一些东西(例如直接读取 fouts[getfnum][0] 并给出段错误,但 fouts[getfnum] 给出“垃圾”)检查归属后的值 fouts[fnum][i] = out[i];在这里,它检查出来了,所以我想这部分没问题)。
不知道这是否是显而易见的事情,但是有什么帮助吗?
最佳答案
您正在混合 char
和 char*
。
fouts[fnum][i] is a char
和
out[i] is a char pointer
所以在这一行
fouts[fnum][i] = out[i];
您将一个char指针
分配给一个char
,这是非法的。
在这一行
if(strcmp(fouts[getfnum][i],nodo) != 0)
您将一个char
(即fouts[getfnum][i]
)传递给strcmp
。
这是不合法的,因为strcmp
需要一个char*
从发布的代码中,很难判断如何解决问题。也许您只需要:
char* fouts[MAX_SIZE][10];
关于c - 双维数组,属性值,但以后无法读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099518/
命令 svn status 返回如下内容: ? SomeClient\BUTCHERED.docx M SomeClient\Development notes.txt ?
我是一名优秀的程序员,十分优秀!