编译的环境和学习的书-------新手的疑惑!
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
1