在代码中找到这一行:
void *ptr = ((char*)l_p - (unsigned int)&((struct node_s*)0)->list);
我不明白它在这种情况下的含义&以及为什么在这种情况下使用它unsigned int。如果可能,请用文字解释。
结构本身的表示在这里:
struct node_s{
char a;
char b;
char c;
char d;
struct list_head list;
};
在代码中找到这一行:
void *ptr = ((char*)l_p - (unsigned int)&((struct node_s*)0)->list);
我不明白它在这种情况下的含义&以及为什么在这种情况下使用它unsigned int。如果可能,请用文字解释。
结构本身的表示在这里:
struct node_s{
char a;
char b;
char c;
char d;
struct list_head list;
};
任务:从文件中读取一定数量的字符,按照书本完成,检查代码,但是没有输出到控制台
int main(int argc, char *argv[]) {
FILE *fp;
char ch[100];
if((fp=fopen("/Users/user_name/Desktop/C/for_read.txt", "r"))==NULL){
printf("Open err.");
return 1;
}
fread(ch,sizeof ch, 1 , fp);
for(int i=0;i<0;i++) printf("%c ",ch[i]);
fclose(fp);
return 0;
}
请帮我找出错误。我究竟做错了什么?
例如,当你输入第十个元素并尝试改变它的值时,它会改变第三个元素,当你尝试改变第一个元素时,它可以改变第四个,某种随机出来,有什么问题?
int &change(int i);
int vals[10];
int main(){
int ch, newval;
cout << "Enter your array.." << endl;
for(int j = 0;j<10; j++) cin >> vals[j];
cout << "\n" <<"Choose element which you want to change.. ";
cin >> ch;
cout << "Enter the new value for this element.. ";
cin >> newval;
newval = change(vals[ch-1]);
cout << endl;
for (int i=0; i<10; i++) cout << vals[i] <<" "; // вывод массива
return 0;
}
int &change(int k){
return vals[k];
}