编译的环境和学习的书-------新手的疑惑!
c语言吧
全部回复
仅看楼主
level 9
桑丛纵目 楼主
学习C语言我是一边看书,一边上机练习。
简单的代码,自己按照记忆或者思路慢慢的敲打出来,然后运行错误,在检查改正,运行。实在不行就对照数来对照,随着学习的渐进发现很多问题,书上明明就是这么写的,这么说的,但敲进去的代码就是不对,编译就是给你不停的报错。真的很无语呀。
每次看到这位和蔼的美国大爷的时候我就很郁闷呀,人家这么牛逼的人物,写出这么一本好书,怎么就在我这出了这么多问题了?
按着你老的代码一个字一个字的敲,编译器不是报错,就是不认识?我也真的是头大了!!!要是能把你老给抓到身边该多好,对了,还得找个中文翻译才行!!!
2017年01月16日 07点01分 1
level 9
桑丛纵目 楼主
#define _STDC_WANT_LIB_EXT1_ 1
#include <stdio.h>
#include <stdlib.h>
#include <windows.h> //替代没有的stdbool.h头文件
#include <string.h>
#define BUF_LEN 256
#define INIT_NSTR 2
#define NSTR_INCR 2
char* str_in();
void str_sort(const char**, size_t);
void swap(const char**, const char**);
void str_out(const char* const*, size_t);
void free_memory(char**,size_t);
//function main --execution starts here
int main (void)
{
size_t pS_size =INIT_NSTR;
char **pS = *calloc(pS_size, sizeof(char*));
if(!pS)
{
printf("Failed to allocate memory fo string pointers.\n");
exit(1);
}
char **pTemp = NULL;
size_t str_count = 0;
char *pStr =NULL;
printf("Enter one string pei line. Press Enter to end:\n");
while((pStr = str_in()) != NULL)
{
if(str_count == pS_size)
{
pS_size += NSTR_INCR;
if(! (pTemp = realloc(pS, pS_size * sizeof(char*))))
{
printf("Memory allocation for array of strings failed.\n");
return 2;
}
pS = pTemp;
}
pS[str_count++] = pStr;
}
str_sort(pS, str_count);
str_out(pS, str_count);
free_memory(pS, str_count);
return 0;
}
//
2017年01月16日 07点01分 2
level 9
桑丛纵目 楼主
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\指针传递数据\指针传递数据\指针传递数据.cpp(21): error C2100: 非法的间接寻址
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\指针传递数据\指针传递数据\指针传递数据.cpp(21): error C2440: “初始化”: 无法从“void *”转换为“char **”
1> 从“void*”到指向非“void”的指针的转换要求显式类型转换
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\指针传递数据\指针传递数据\指针传递数据.cpp(37): error C2440: “=”: 无法从“void *”转换为“char **”
1> 从“void*”到指向非“void”的指针的转换要求显式类型转换
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\指针传递数据\指针传递数据\指针传递数据.cpp(46): error C2664: “str_sort”: 不能将参数 1 从“char **”转换为“const char **”
1> 转换丢失限定符
1>
1>生成失败。
2017年01月16日 07点01分 3
level 9
桑丛纵目 楼主
代码没有问题,我就换编译器吧,我就不信啦。
2017年01月16日 07点01分 4
level 13
我不是很喜欢清华大学出版社出版的图书。
这本书的作者叫霍顿,和某人重名。[滑稽]
一张图片胜过万句话,一个函数要写过万行。——Roedy Green
2017年01月16日 07点01分 6
哥们你是北大的吧?
2017年01月16日 07点01分
回复 桑丛纵目 : 手动滑稽[滑稽] 一张图片胜过万句话,一个函数要写过万行。——Roedy Green
2017年01月16日 08点01分
level 11
[阴险]定位过去看哪错了 一定要结合编译器提示看
2017年01月16日 09点01分 7
level 16
赌五毛 LZ 源文件扩展名是 cpp
2017年01月16日 09点01分 8
你赢啦[呵呵]
2017年01月16日 13点01分
回复 桑丛纵目 :C++ 不允许 void* 向其他指针的隐式转换,而 C 允许。
2017年01月16日 14点01分
level 7
感觉是 楼主 是 视觉疲劳 英语无感[滑稽]
2017年01月16日 13点01分 10
感觉你很懂我哦,对了,搞基不?
2017年01月16日 13点01分
@桑丛纵目 鸡 我认识,不准你搞他。[怒]
2017年01月16日 13点01分
level 9
这本书推荐用的编译器采用的标准是C11,楼主的编译器采用的标准应该是C99
2017年01月16日 13点01分 11
level 7
这本书的代码质量低劣,注水严重[滑稽]
2017年01月16日 13点01分 12
这个评价有点厉害哦!
2017年01月16日 13点01分
@桑丛纵目 下了个电子版,看了看。也许有失公允。但质量的确不高,不足为范。
2017年01月16日 14点01分
level 7
为什么不看看c primer plus ?你对比一下就知道清华大学出版社出的书和经典书的差距了。毕竟我被坑了好久。。
2017年01月16日 14点01分 13
我说的经典书指c primer plus
2017年01月16日 14点01分
1