欢迎来到天天文库
浏览记录
ID:57403321
大小:220.00 KB
页数:7页
时间:2020-08-16
《包含了《Winsockh》,创建SOCKET时出错。引起出错的语.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、包含了《Winsock2h》,创建SOCKET时出错。引起出错的语————————————————————————————————作者:————————————————————————————————日期:一,创建一个win32,应用程序(Win32Application),包含了,创建SOCKET时出错。引起出错的语句:SOCKETmyUDPSock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP),问题现象:编译可以通过,连接时有如下错误,超找帮助发现可能执行函数时,没有连接到
2、库,在Projects->settingsàlink中加入ws2_32.lib链接,问题解决。(2010-8-8)--------------------Configuration:WINMAIN3-Win32Debug--------------------Linking...WINMAIN3.obj:errorLNK2001:unresolvedexternalsymbol__imp__socket@12Debug/WINMAIN3.exe:fatalerrorLNK1120:1unresolvedexternalsErrore
3、xecutinglink.exe.WINMAIN3.exe-2error(s),0warning(s)二、出现预编译文件找不到,问题原因可能是一个工作区包含了多个工程,第一个工程编译编译运行后,就会在工程设置里增加预编译头文件,新建的工程继承了原来工程的设置,所以在运行时会找原来的文件而找不到。解决方法:更改工程设置,去掉这个预编译头文件如图:2010-8-14三、free和malloc的使用注意事项在一次编程中出现下面的断言错误,经过反复试验,发现是free的指针所指的内存不是malloc分配的,而是一个数组在定义时分配的。结合m
4、sdn对free和malloc的解释:Thefreefunctiondeallocatesamemoryblock(memblock)thatwaspreviouslyallocatedbyacalltocalloc,malloc,orrealloc.Thenumberoffreedbytesisequivalenttothenumberofbytesrequestedwhentheblockwasallocated(orreallocated,inthecaseofrealloc).IfmemblockisNULL,thepoin
5、terisignoredandfreeimmediatelyreturns.Attemptingtofreeaninvalidpointer(apointertoamemoryblockthatwasnotallocatedbycalloc,malloc,orrealloc)mayaffectsubsequentallocationrequestsandcauseerrors.Afteramemoryblockhasbeenfreed,_heapminminimizestheamountoffreememoryontheheapby
6、coalescingtheunusedregionsandreleasingthembacktotheoperatingsystem.Freedmemorythatisnotreleasedtotheoperatingsystemisrestoredtothefreepoolandisavailableforallocationagain.可以看出malloc分配的内存是从heap(堆)中获得的,free函数也就只能free堆里的内存,因此,当调用函数去free一快栈里的内存是,就会有下面的错误。用来验证此错误的程序:
7、 2010-8-15#include#include#includetypedefstructtest{char*pch;}test_t;inttest_init(test_t**p_test);inttest_set(test_t*p_test,char*ch);//inttest_set_chrs(test_t*p_test,constchar*ch);inttest_free(test_t*p_test);intmain(){test_t*ptr
8、_test;charchrs[]="tests";//printf("lengthofchrs%d",strlen(chrs));char*ptr_string;intlength;length=strlen(chrs);ptr_
此文档下载收益归作者所有