我有一个来自C++书籍的代码片段:
#include<stdio.h>
#include<stdlib.h>
struct S1
{
const char *s;
int i;
struct S1 *slp;
};
main()
{
static struct S1 a[]= {{"abcdef", 1, a+1},
{"ghijkl", 2, a+2},
{"mnopqr", 3, a} };
struct S1 *p = a;
printf("a[0].s = %s p-> = %s a[2].slp->s = %s \n", a[0].s, p->s, a[2].slp->s);
for(int i=0; i<3; i++)
{
printf("--a[i].i = %d ", --a[i].i);
printf("++a[i].s[3] = %c \n", ++a[i].s[3]);
}
}
Run Code Online (Sandbox Code Playgroud)
使用Dev C++ v5.11,我无法使用错误代码编译它:
[Error] increment of read-only location '*(a[i].S1::s + 3u)'
Run Code Online (Sandbox Code Playgroud)
由@Corristo评论的解决方案有效.
感谢大家的帮助.我下次会得到更好的IDE和书籍.谢谢,@ Tomaz-Canabrava.
停止使用Dev C++
获得一本正确的C++书籍
不要使用与Turbo C++相关的任何内容
有很多好的和免费的书籍,编译器和IDE,因为你在Windows中我会推荐其中一个免费的IDE:
这至少会给你一个现代的C++,而不是石器时代.好学习.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |