c++内存问题!!!!!!!

#include
#include
#include
using namespace std;
int main() {
string a, b;
int i, x, y;
vector v1, v2;
while (cin >> a >> b) {
for (i = 0; i < v1.size(); i++) {
if (v1[i] == a) {
x = i;
break;
}
}
if (i == v1.size())
x = i;
for (i = 0; i < v2.size(); i++) {
if (v2[i] == b) {
y = i;
break;
}
}
if (i == v2.size())
y = i;
if (x == v1.size() && y == v2.size()) {
cout << b << " registered." << endl;
v1.push_back(a);
v2.push_back(b);
}
else if (v1[y] == a && v2[x] == b) {
cout << b << " signed in." << endl;
}
else if (x != v1.size() && y == v2.size()) {
cout << "GOTCHA: MAC address already occupied by ";
cout << v2[x] << "." << endl;
}
else
{ cout << "GOTCHA: " << b << " MAC address not consistent." << endl;
}
}
return 0;
}
Invalid read of size 8
| at 0x3F8CC9C0D0: std::string::size() const (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x40175D: gnu_cxx::enable_ifstd::__is_char<char::__value, bool>::__type std::operator==(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&) (basic_string.h:2243)
| by 0x4012B5: main (main.cpp:30)
| Address 0x4c29498 is 8 bytes before a block of size 8 alloc'd
| at 0x4A075BC: operator new(unsigned long) (vg_replace_malloc.c:298)
| by 0x402184: gnu_cxx::new_allocatorstd::string::allocate(unsigned long, void const*) (new_allocator.h:89)
| by 0x401F80: std::_Vector_base >::_M_allocate(unsigned long) (stl_vector.h:140)
| by 0x401BBB: std::vector >::_M_insert_aux(
gnu_cxx::__normal_iterator > >, std::string const&) (vector.tcc:322)
| by 0x401877: std::vector >::push_back(std::string const&) (stl_vector.h:741)
| by 0x40122E: main (main.cpp:27)
|
|Invalid read of size 8
| at 0x3F8CC9C0D3: std::string::size() const (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x40175D: gnu_cxx::enable_ifstd::__is_char<char::__value, bool>::__type std::operator==(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&) (basic_string.h:2243)
| by 0x4012B5: main (main.cpp:30)
| Address 0xffffffffffffffe8 is not stack'd, malloc'd or (recently) free'd
|
|
|Process terminating with default action of signal 11 (SIGSEGV)
| Access not within mapped region at address 0xFFFFFFFFFFFFFFE8
| at 0x3F8CC9C0D3: std::string::size() const (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x40175D: gnu_cxx::enable_ifstd::__is_char<char::__value, bool>::__type std::operator==(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&) (basic_string.h:2243)
| by 0x4012B5: main (main.cpp:30)
| If you believe this happened as a result of a stack
| overflow in your program's main thread (unlikely but
| possible), you can try to increase the size of the
| main thread stack using the --main-stacksize= flag.
| The main thread stack size used in this run was 10485760.
|66 bytes in 2 blocks are possibly lost in loss record 3 of 4
| at 0x4A075BC: operator new(unsigned long) (vg_replace_malloc.c:298)
| by 0x3F8CC9C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x3F8CC9D19A: std::string::_Rep::_M_clone(std::allocator const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x3F8CC9D5EB: std::string::reserve(unsigned long) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x3F8CC7B05A: std::basic_istream >& std::operator>>, std::allocator >(std::basic_istream >&, std::basic_string, std::allocator >&) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x401431: main (main.cpp:8)
|
|114 bytes in 2 blocks are possibly lost in loss record 4 of 4
| at 0x4A075BC: operator new(unsigned long) (vg_replace_malloc.c:298)
| by 0x3F8CC9C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x3F8CC9D19A: std::string::_Rep::_M_clone(std::allocator const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x3F8CC9D5EB: std::string::reserve(unsigned long) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x3F8CC7B05A: std::basic_istream >& std::operator>>, std::allocator >(std::basic_istream >&, std::basic_string, std::allocator >&) (in /usr/lib64/libstdc++.so.6.0.13)
| by 0x40141F: main (main.cpp:8)
怎么破! 求大神

c++

5个回答

应该是对vector,string的
误报。

ljt326053002
ljt326053002 谢谢回答!! 是越界了……自己傻逼了
接近 5 年之前 回复

用的是什么编译器,vector v1, v2; 这个都编得过?
改成下面这样子,跑起来木有问题

#include
#include
#include
using namespace std;
int main() {
string a, b;
int i, x, y;
vector v1, v2;
while (cin >> a >> b) {
for (i = 0; i < v1.size(); i++) {
if (v1[i] == a) {
x = i;
break;
}
}
if (i == v1.size())
x = i;
for (i = 0; i < v2.size(); i++) {
if (v2[i] == b) {
y = i;
break;
}
}
if (i == v2.size())
y = i;
if (x == v1.size() && y == v2.size()) {
cout << b << " registered." << endl;
v1.push_back(a);
v2.push_back(b);
}
else if (v1[y] == a && v2[x] == b) {
cout << b << " signed in." << endl;
}
else if (x != v1.size() && y == v2.size()) {
cout << "GOTCHA: MAC address already occupied by ";
cout << v2[x] << "." << endl;
}
else
{ cout << "GOTCHA: " << b << " MAC address not consistent." << endl;
}
}
return 0;
}


SORRY,贴错了,下面才是我的改动,我用的是老掉牙的VC6++

#include
#include
#include
using namespace std;
int main() {
string a, b;
int i, x, y;
vector v1, v2;
while (cin >> a >> b) {
for (i = 0; i < v1.size(); i++) {
if (v1[i] == a) {
x = i;
break;
}
}
if (i == v1.size())
x = i;
for (i = 0; i < v2.size(); i++) {
if (v2[i] == b) {
y = i;
break;
}
}
if (i == v2.size())
y = i;
if (x == v1.size() && y == v2.size()) {
cout << b << " registered." << endl;
v1.push_back(a);
v2.push_back(b);
}
else if (v1[y] == a && v2[x] == b) {
cout << b << " signed in." << endl;
}
else if (x != v1.size() && y == v2.size()) {
cout << "GOTCHA: MAC address already occupied by ";
cout << v2[x] << "." << endl;
}
else
{ cout << "GOTCHA: " << b << " MAC address not consistent." << endl;
}
}
return 0;
}

ljt326053002
ljt326053002 谢谢回答!! 编译没有问题 是那个 v1[y]那里可能造成越界。 总之谢谢你的回答!
接近 5 年之前 回复

有bug,自己学会debug,其实也是挺有成就感的事情。

ljt326053002
ljt326053002 恩恩!! 自己搞定了!! 昨晚实在比较急……
接近 5 年之前 回复

SORRY AGAIN,原来是这边贴代码会把尖括号干掉,你的代码,我的编译器编译后木有问题。
有可能是64bit ---》 32bit的问题,查查你的编译环境和执行环境







Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c++内存问题!!!!!!!
#include <iostream> #include <string> #include <vector> using namespace std; int main() { string a, b; int i, x, y; vector<string> v1, v2; while (cin >> a >> b) { for (i = 0; i < v1.size(); i++) { if (v1[i] == a) { x = i; break; } } if (i == v1.size()) x = i; for (i = 0; i < v2.size(); i++) { if (v2[i] == b) { y = i; break; } } if (i == v2.size()) y = i; if (x == v1.size() && y == v2.size()) { cout << b << " registered." << endl; v1.push_back(a); v2.push_back(b); } else if (v1[y] == a && v2[x] == b) { cout << b << " signed in." << endl; } else if (x != v1.size() && y == v2.size()) { cout << "GOTCHA: MAC address already occupied by "; cout << v2[x] << "." << endl; } else { cout << "GOTCHA: " << b << " MAC address not consistent." << endl; } } return 0; } Invalid read of size 8 | at 0x3F8CC9C0D0: std::string::size() const (in /usr/lib64/libstdc++.so.6.0.13) | by 0x40175D: __gnu_cxx::__enable_if<std::__is_char<char>::__value, bool>::__type std::operator==<char>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (basic_string.h:2243) | by 0x4012B5: main (main.cpp:30) | Address 0x4c29498 is 8 bytes before a block of size 8 alloc'd | at 0x4A075BC: operator new(unsigned long) (vg_replace_malloc.c:298) | by 0x402184: __gnu_cxx::new_allocator<std::string>::allocate(unsigned long, void const*) (new_allocator.h:89) | by 0x401F80: std::_Vector_base<std::string, std::allocator<std::string> >::_M_allocate(unsigned long) (stl_vector.h:140) | by 0x401BBB: std::vector<std::string, std::allocator<std::string> >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >, std::string const&) (vector.tcc:322) | by 0x401877: std::vector<std::string, std::allocator<std::string> >::push_back(std::string const&) (stl_vector.h:741) | by 0x40122E: main (main.cpp:27) | |Invalid read of size 8 | at 0x3F8CC9C0D3: std::string::size() const (in /usr/lib64/libstdc++.so.6.0.13) | by 0x40175D: __gnu_cxx::__enable_if<std::__is_char<char>::__value, bool>::__type std::operator==<char>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (basic_string.h:2243) | by 0x4012B5: main (main.cpp:30) | Address 0xffffffffffffffe8 is not stack'd, malloc'd or (recently) free'd | | |Process terminating with default action of signal 11 (SIGSEGV) | Access not within mapped region at address 0xFFFFFFFFFFFFFFE8 | at 0x3F8CC9C0D3: std::string::size() const (in /usr/lib64/libstdc++.so.6.0.13) | by 0x40175D: __gnu_cxx::__enable_if<std::__is_char<char>::__value, bool>::__type std::operator==<char>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (basic_string.h:2243) | by 0x4012B5: main (main.cpp:30) | If you believe this happened as a result of a stack | overflow in your program's main thread (unlikely but | possible), you can try to increase the size of the | main thread stack using the --main-stacksize= flag. | The main thread stack size used in this run was 10485760. |66 bytes in 2 blocks are possibly lost in loss record 3 of 4 | at 0x4A075BC: operator new(unsigned long) (vg_replace_malloc.c:298) | by 0x3F8CC9C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x3F8CC9D19A: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x3F8CC9D5EB: std::string::reserve(unsigned long) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x3F8CC7B05A: std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x401431: main (main.cpp:8) | |114 bytes in 2 blocks are possibly lost in loss record 4 of 4 | at 0x4A075BC: operator new(unsigned long) (vg_replace_malloc.c:298) | by 0x3F8CC9C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x3F8CC9D19A: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x3F8CC9D5EB: std::string::reserve(unsigned long) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x3F8CC7B05A: std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (in /usr/lib64/libstdc++.so.6.0.13) | by 0x40141F: main (main.cpp:8) 怎么破! 求大神
求问一个c++栈和内存存储的问题!!!!!!!!!!!
栈的特性为连续的因此我做的个实验 ![图片说明](https://img-ask.csdn.net/upload/201903/05/1551795162_424061.png) ![图片说明](https://img-ask.csdn.net/upload/201903/05/1551795173_532541.png) 运行结果 ![图片说明](https://img-ask.csdn.net/upload/201903/05/1551795185_528709.png) 从这里能看出来 只有主函数里的变量和局部函数里的变量是连续的 这两个函数之间是不连续的为什么? 以我的理解先执行test(),test里的a、b、c入栈 生命周期结束 mian里的a、b、c入栈他们的内存位置应该相同啊
求问c++问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#include <iostream> using namespace std; void change(char **a) { char *p = "world"; *a = p; } void main() { using namespace std; char a[] = "asd"; char *p = a; change(&p); cout << p << endl; system("pause"); } 调用的函数 意思是把主函数里p指针的指向改成函数里"world"的地址,但函数调用结束内存释放外部p不就成野指针了么,为什么还能输出world.
求教一个C++问题!!!急需!!!
要求输入n个不同长度的字符串,并计算每个串重复次数,按次数降序排序。要求不能假设n有最大值,也不能按假设每个串统一长度造成内存浪费。请问不能假设n有最大值要如何做到啊???然后麻烦写一下代码,谢谢了
关于Flex内存泄漏的问题!
各位朋友大家好: 小弟咨询一个问题,我们开发的flex项目接近了尾声,本来应该高兴放松一下,但是在我们测试的时候发现了一个很严重的情况,我们的项目在运行时出现了很严重的内存泄漏的情况,,使ie所占的内存很大,居然出现了一下的情况,,如图 [img]/upload/attachment/117218/653669af-8412-3df5-97d8-e01ae38c28e9.jpg[/img] 基于以上的情况我使用了Flex Builder中的Profiler来分析内存但是不能够很明白是什么意思,,,,希望朋友们能够帮忙看一下,,,或者是提一下你们的解决办法! 任务管理器显示ie所占内存: [img]/upload/attachment/117284/e7926697-9971-303d-93ba-2795fd7819e1.bmp[/img] Profiler显示数据: [img]/upload/attachment/117222/88cbb91e-2dbc-3cb4-acad-3948e4be8068.jpg[/img] [b]问题补充:[/b] 1 首先声明Dictdetail是我在全局使用的一个字典! 2 你们看到的Dictdetail占用很多只有在登陆的时候会增加,增加占用内存,在登陆后实例数就不会增加,而我遇到的问题是当没点击打开一个swf文件就增加ie所占内存的开销! 3 什么是所谓的闭包调用,请说的详细些!
内存异常报错问题,急!!!
程序在未加第382行cvMatchTemplate时运行正常,加入第382行cvMatchTemplate后报0x7c812fd3 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0ca475f0 处的 cv::Exception的错误。 ![图片说明](https://img-ask.csdn.net/upload/201509/15/1442281137_431128.jpg) 出错的断点在另外一个函数中,第343行,该函数为递归调用函数。 ![图片说明](https://img-ask.csdn.net/upload/201509/15/1442281165_152737.jpg) 请教各位大神,这个问题怎么解决?急!
C语言!!!!单链表 问题
``` #include"stdio.h" #include"stdlib.h" void getInput(struct Book *book); void addBook(struct Book **library); void printLibrary(struct Book *library); void releaseLibrary(struct Book *library); struct Book { char name[128]; char author[40]; int money; struct Book *next; }; void getInput(struct Book *book) { printf("请输入书名:"); scanf("%s",book->name); printf("请输入作者:"); scanf("%s",book->author); printf("请输入售价:"); scanf("%d",book->money); } void addBook(struct Book **library) { struct Book *book,*temp; book = (struct Book *)malloc(sizeof(struct Book)); if (book == NULL) { printf("内存分配失败!\n"); exit(1); } getInput(book); if(*library != NULL) { temp = *library; *library = book; book->next = temp; } else { *library = book; book->next = NULL; } } void printLibrary(struct Book *library) { struct Book *book; int count = 1 ; book = library; while (book != NUll) { printf("Book%d:",count) printf("书名:%s",book->name); printf("作者:%s",book->author); printf("售价:%d",book->money); book = book->next; count ++ ; } } void releaseLibrary(struct Book *library) { while (library!=NULL) { library=library->next; free(library); } } int main() { struct Book *library = NULL; char ch; while(1) { printf("请问是否需要录入书籍信息(Y/N)"); do { ch = getchar(); } while (ch != 'Y' && ch!= 'N'); if(ch == 'Y') { addBook(&library); } else { break; } } printf("请问是否需要打印图书信息(Y/N)"); do { ch=getchar(); } while (ch!='Y'&& ch!= 'N'); if(ch == 'Y') { printLibrary(library); } releaseLibrary(library); // addBook(&library); return 0; } ``` 上传不了图片。。。但是我编译 巨多报错,。。。 各位老哥帮忙看一下哪里错了
求大神指教C++的问题!!!
C++类中建立的局部对象内存分配在栈中,使用时它还需要new吗?在使用对象是什么时候需要用new,什么时候不用?
急!!!!!!!!!!!C++中关于strcat()函数占用其他变量内存地址的问题?
源代码有点长,我就只贴关键部分了! ``` int main(){ /省略部分代码。。。。/ LinearList *L=(LinearList *)malloc(sizeof(LinearList)); InitList(L,MAX); while(1){ printf("Input file:"); gets(filename); //用get函数,避免scanf以空格分割数据, if (filename[0]==34) filename[strlen(filename)-1]=0,strcpy(filename,filename+1); //支持文件拖曳,但会多出双引号,这里是处理多余的双引号 if (!strcmp(filename,"exit")) exit(0); //输入exit退出 if (!(fp=fopen(filename,"rb"))) {printf("Can not open this file!\n");continue;} //以二进制打开文件 fseek(fp, 0, SEEK_END); //文件指针转到文件末尾 if((len=ftell(fp))==-1) {printf("Sorry! Can not calculate files which larger than 2 GB!\n");fclose(fp);continue;} //ftell函数返回long,最大为2GB,超出返回-1 rewind(fp); //文件指针复位到文件头 A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476; //初始化链接变量 flen[1]=len/0x20000000; //flen单位是bit flen[0]=(len%0x20000000)*8; memset(x,0,64); //初始化x数组为0 fread(&x,4,16,fp); //以4字节为一组,读取16组数据 for(i=0;i<len/64;i++){ //循环运算直至文件结束 md5(); memset(x,0,64); fread(&x,4,16,fp); } ((char*)x)[len%64]=128; //文件结束补1,补0操作,128二进制即10000000 if(len%64>55) md5(),memset(x,0,64); memcpy(x+14,flen,8); //文件末尾加入原文件的bit长度 md5(); fclose(fp); char str1[8]; sprintf(str1,"%08x",PP(A)); char *s1=str1; char str2[8]; sprintf(str2,"%08x",PP(B)); char *s2=str2; char str3[8]; sprintf(str3,"%08x",PP(C)); char *s3=str3; char str4[8]; sprintf(str4,"%08x",PP(D)); char *s4=str4; strcat(str1,str2); strcat(str1,str3); strcat(str1,str4); cout<<str1<<endl; char *p=str1; node x(p,filename); InsertElem(L,x); } Printout(L); return 0; } ``` 然后问题是这样的: 通过调试发现:我在while循环外面定义和初始化了变量L之后,L的相关成员变量都有了内存地址。结果当运行完strcat(str1,str2)之后,奇怪的是L变量的内存地址突然变了,导致它所有的成员变量都没有有效内存地址。接下来,任何需要传入L作为参数的函数都没有办法运行,报错。 请问:这是怎么一回事啊???解决办法是????或者我通过其他方法把str1、str2、str3连接起来????
C++初学问题!!求讲解
新手,我写了一个职工管理系统,没有语法错误。但运行不了,应该是类和链表有问题,但我太菜,不知道怎么解决,求大神帮忙。 以下是我的程序(因为有格式问题,可能略乱,跪求忽视) #include "stdafx.h" #include <iostream> #include <fstream> #include <process.h> #include <cstring> #include <conio.h> using namespace std; void MainMenuControl(); int MainMenu(); class CStaff { public: CStaff( char *id, char *name, char *birth, char *depart, char *title, char *rank, float tel, char sex= 'M' ) { strcpy(this->id,id); strcpy(this->name,name); strcpy(this->birth,birth); strcpy(this->depart,depart); strcpy(this->title,title); strcpy(this->rank,rank); this->tel= tel; this->sex= sex; } friend class CStaffList; void ShowInfo() { cout<<"**工号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"出生年月"<<"\t" <<"部门"<<"\t"<<"职称"<<"\t"<<"工资级别"<<"\t"<<"电话**"<<endl; cout<<"**"<<this->id<<"\t"<<this->name<<"\t"<<( this->sex == 'M'?"男":"女" )<<"\t"<<this->birth<<"\t" <<this->depart<<"\t"<<this->title<<"\t"<<this->rank<<"\t"<<this->tel<<"**"<<endl; } private: char id[10]; char name[15]; char sex; char birth[10]; char depart[10]; char title[10]; char rank[10]; float tel; CStaff *next; }; class CStaffList { private: CStaff *Staff; CStaff *p; void Clear() { CStaff *pt= Staff; while(pt) { Staff= pt->next; delete pt; pt= Staff; } }//重新载入的时候清除原内存 public: CStaffList() { Staff= 0; Load(); } ~CStaffList() { CStaff *pt; pt= Staff; while(pt) { pt= pt->next; delete Staff; Staff= pt; } Staff= 0; } void Add();//录入 void modify();//链接编辑和检索函数 void Modify();//修改 void Browsing();//显示到屏幕上 void Save(); //数据存盘 void Load(); //数据装入 void Retrieval();//检索 }; int main() { MainMenuControl(); return 0; } int MainMenu() { cout<<"********************************************************************************"<<endl; cout<<"** 职工档案管理系统 **"<<endl; cout<<"********************************************************************************"<<endl; cout<<"** **"<<endl; cout<<"** 信息浏览.......Information Browsing...1 **"<<endl; cout<<"** 信息检索.......Information Retrieval..2 **"<<endl; cout<<"** 添加职工信息...Add Staff Information..3 **"<<endl; cout<<"** 职工信息编辑...Information Modify.....4 **"<<endl; cout<<"** 数据导入.......Load Information ......5 **"<<endl; cout<<"** 数据保存.......Save Information.......6 **"<<endl; cout<<"** 退出...........Exit...................0 **"<<endl; cout<<" 请输入项目号进入应用:"; int choice; cin>>choice; return choice; } void MainMenuControl() { while(1) { int choice= MainMenu(); CStaffList s1; switch(choice) { case 1: s1.Browsing(); break; case 2: s1.Retrieval();break; case 3: s1.Add(); break; case 4: s1.modify(); break; case 5: s1.Load(); break; case 6: s1.Save(); break; case 0: cout<<"*************************系统退出,欢迎下次使用*********************************"<<endl; exit(0); default: break; } system("cls"); } } void CStaffList::Load()//数据装入 { char id[10]; char name[15]; char sex; char birth[10]; char depart[10]; char title[10]; char rank[10]; float tel; fstream file; file.open("staff_file.txt",ios::in); if(!file) { cout<<"** 不能打开文件文件:staff_file.txt!! **"<<endl; exit(1); } file>>id>>name>>sex>>birth>>depart>>title>>rank>>tel;//预读第一行(项目名称),不录入 CStaffList::Clear(); CStaff *p1,*p0;//p1用于创建新的内存空间的,p0用于找到尾地址,链接作用 file>>id>>name>>sex>>birth>>depart>>title>>rank>>tel;//录入第二行 获得首地址 p1= new CStaff( id, name, birth, depart, title, rank, tel, sex ); p0= Staff= p1; while( !file.eof())//从第三行开始循环录入 { file>>id>>name>>sex>>birth>>depart>>title>>rank>>tel; p1= new CStaff( id, name, birth, depart, title, rank, tel, sex ); p0->next= p1; p0= p0->next; } p0= NULL; file.close(); } void CStaffList::Save() { CStaff *p1; fstream file; file.open("staff_file.txt",ios::trunc); if(!file) { cout<<"** 不能打开文件文件:staff_file.txt!! **"<<endl; exit(1); } if(Staff) { file<<"工号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"出生年月"<<"\t" <<"部门"<<"\t"<<"职称"<<"\t"<<"工资级别"<<"\t"<<"电话"<<"\n"; for( p1= Staff; p1 != NULL; p1= p1->next ) file<<p1->id<<"\t"<<p1->name<<"\t"<<( p1->sex == 'M'?"男":"女" )<<"\t"<<p1->birth<<"\t" <<p1->depart<<"\t"<<p1->title<<"\t"<<p1->rank<<"\t"<<p1->tel<<"\n"; } else { cout<<"** 无成员,请添加:staff_file.txt!! **"<<endl; return; } file.close(); //返回主菜单 cout<<"** 按任意键返回主菜单 **"<<endl; char ch; ch= getch(); return; } void CStaffList::Add() { CStaff *p1; char id[10]; cout<<">> 工号:"; cin>>id; char name[15]; cout<<">> 姓名:"; cin>>name; char sex; cout<<">> 性别(M/W):"; cin>>sex; char birth[10]; cout<<">> 生日(1970.1.1):";cin>>birth; char depart[10];cout<<">> 部门:"; cin>>depart; char title[10]; cout<<">> 职称:"; cin>>title; char rank[10]; cout<<">> 工资级别:"; cin>>rank; float tel; cout<<">> 电话:"; cin>>tel; p1= new CStaff( id, name, birth, depart, title, rank, tel, sex ); p1->next= 0; if(Staff) { CStaff *p0; for( p0= Staff; p0->next!= NULL; p0= p0->next ); p0->next= p1; } else { Staff= p1; } //链接到save函数进行保存和文件数据同步 cout<<"** 请按『s』键进行保存 **"<<endl; char c; cin>>c; while(1) { if( c== 's'||'S' ) { CStaffList::Save();return; } else { cout<<" 输入有误,重新输入:"; cin>>c; } } } void CStaffList::Retrieval() { while(1) { cout<<"** 请选择查找方式 **"<<endl; cout<<"** 1. 按工号进行搜索 Search by ID **"<<endl; cout<<"** 2. 按姓名进行搜素 Search by Name **"<<endl; cout<<"** 0. 返回主菜单 Return MainMenu **"<<endl; int choice; cin>>choice; CStaff *p1; p1= Staff; char c; switch(choice) { case 1: //按id筛选查找结点 char id[10]; cin>>id; for( ; p1 != NULL; p1= p1->next ) if( strcmp( p1->id,id) == 0 ) break; if( p1 == NULL ) { cout<<"** 您所查找的用户不存在 **"<<endl;break; } else { cout<<"** 你所查找的信息如下: **"<<endl; p1->ShowInfo(); } //在检索的基础上进行编辑操作 cout<<" 是否对该用户进行编辑?Y/N"<<endl; cin>>c; while(1) { if( c == 'y'||'Y') { p= p1; CStaffList::Modify(); } else if( c == 'n'||'N') break; else { cout<<" 输入有误,请重新输入:"; cin>>c; } } break; case 2: //按姓名找结点 char name[10]; cin>>name; for( ; p1 != NULL; p1= p1->next ) if( strcmp( p1->name,name) == 0 ) break; if( p1 == NULL ) { cout<<"** 您所查找的用户不存在 **"<<endl;break; } else p1->ShowInfo(); cout<<" 是否对该用户进行编辑?Y/N:"; cin>>c; while(1) { if( c == 'y'||'Y') { p= p1; CStaffList::Modify(); } else if( c == 'n'||'N') break; else { cout<<" 输入有误,请重新输入:"; cin>>c; } } break; case 0: return; } } } void CStaffList::modify()//没有实际作用,连接到检索菜单 { cout<<"** 1.检索所要编辑的职工 **"<<endl; cout<<"** 0. 返回主菜单 **"<<endl; int choice; while(1) { cout<<" 请输入您的选择:"; cin>>choice; switch(choice) { case 1: CStaffList::Retrieval(); case 0: return; default:cout<<"** 输入有误,请重新输入! **"<<endl; break; } } } void CStaffList::Modify() { while(1) { cout<<"** 请选择你所需要修改信息,请填序号: **"<<endl; cout<<"** 1. 工号 2.姓名 **"<<endl; cout<<"** 3. 性别 4.出生日期 **"<<endl; cout<<"** 5. 部门 6.职称 **"<<endl; cout<<"** 7. 工资级别 8.电话 **"<<endl; int choice; cin>>choice; switch(choice) { case 1: cout<<">> 工号:"; cin>>p->id; break; case 2: cout<<">> 姓名:"; cin>>p->name; break; case 3: cout<<">> 性别(M/W):"; cin>>p->sex; break; case 4: cout<<">> 出生年月(1970.1.1):";cin>>p->birth; break; case 5: cout<<">> 部门:"; cin>>p->depart;break; case 6: cout<<">> 职称:"; cin>>p->title; break; case 7: cout<<">> 工资等级:"; cin>>p->rank; break; case 8: cout<<">> 电话:"; cin>>p->tel; break; } cout<<"** 已修改,信息如下: **:"<<endl; p->ShowInfo(); char c; cin>>c; while(1) { cout<<" 是否保存并退出编辑?Y/N:"; if( c == 'y'||'Y' ) { CStaffList::Save();return; } else if( c == 'n'||'N' )break; else { cout<<"** 输入有误,请重新输入: **"; cin>>c; } } } p= Staff; } void CStaffList::Browsing() { CStaff *p1; cout<<"** 职工信息如下 **"<<endl; cout<<"**工号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"出生年月"<<"\t" <<"部门"<<"\t"<<"职称"<<"\t"<<"工资级别"<<"\t"<<"电话**"<<endl; for( p1= Staff; p1!= NULL; p1= p1->next ) cout<<"**"<<p1->id<<"\t"<<p1->name<<"\t"<<(p1->sex=='M'?"男":"女")<<"\t"<<p1->birth<<"\t" <<p1->depart<<"\t"<<p1->title<<"\t"<<p1->rank<<"\t"<<p1->tel<<"**"<<endl; }
求助! C# winform GridControl 导出Excel出现内存溢出的问题!
使用的是DevExpress 15.1 的版本导出的是2007的xlsx格式的Excel 代码中使用的是CompositeLink类的ExportToXlsx()方法
C语言中Free函数释放内存为何释放不了!!!!!!!
#include <stdafx.h> #include<string> void testFree(char *par) { void*free(par); par = NULL; } int _tmain(int argc, _TCHAR* argv[]) { char path[10] = {"abc"}; char *str = (char *) malloc(100 *sizeof(char)); memset(str,0x00,100 *sizeof(char)); memcpy(str,path,strlen(path)); printf("wwl1:%s\n",str); testFree(str); printf("wwl2:%s\n",str); return 0; } 打印结果为: wwl1:abc wwl2:abc 正常的话不是应该为:wwl1:abc wwl2:(null) d 的么?为何输出有误,为何str内存并未释放?testFree函数地址传递有误么?
c++多选题求大佬帮忙!!!!
下面有关C++的一些叙述中,错误的有( ) A)程序片段“int j=10,k=11,&i=j; i=k; k=12; std::cout<<i<<' '<<j<<' '<<k;”输出:12 12 12 B)引用变量定义时必须进行初始化,在程序中对引用的存取都是对它所引用的变量的存取,可以取引用的地址,引用变量不能再指向别的变量。 C)返回引用必须保证返回的引用变量有合法的内存空间,并且不在函数的运行栈中。 D)使用const常引用参数不需要制作数据的副本,所以可以提高程序的运行性能。 E)有函数“void f1(int n);”声明,则:可以在函数内修改n,但值不会影响调用者;可用表达式或变量作为实参调用该函数。 F)有函数“void f2(int &n);”声明,则:可以在函数内修改n,值会影响调用者;可用表达式或变量作为实参调用该函数。 G)有函数“void f3(const int &n);”声明,则:不可以在函数内修改n;只能用同类型的变量作为实参调用该函数。
C#调用C程序dll的内存问题
项目需要:实现C#调用C语言写的的算法,该C程序需要封装成dll。C程序本身可以跑通没有任何问题,随即写了一个C#demo来调用该算法。报如下图的错误 ![图片说明](https://img-ask.csdn.net/upload/201801/01/1514778145_545365.png) 由于测试阶段,所以该C程序没有参数接口,所以排除网上一些帖子说的参数类型不匹配的原因。 进入dll内部进行调试,报如下错误 ![图片说明](https://img-ask.csdn.net/upload/201801/01/1514778352_126183.png) 经调试发现是第二块内存continental_47_grid分配失败导致的上图错误,第一块aodgrid分配正常。 ![图片说明](https://img-ask.csdn.net/upload/201801/01/1514778387_739926.png) 但如果手动把分配内存大小调小可以分配成功。如此看来是内存空间不够的问题导致的,但是C程序本身运行没有出现过这样的问题。难道是dll本事有内存限制机制? 卡了很多天了,还望各路大神帮忙看看 一下是C#调用代码: public static class NativeMethod { [DllImport("kernel32.dll", EntryPoint = "LoadLibrary")] public static extern int LoadLibrary( [MarshalAs(UnmanagedType.LPStr)] string lpLibFileName); [DllImport("kernel32.dll", EntryPoint = "GetProcAddress")] public static extern IntPtr GetProcAddress(int hModule, [MarshalAs(UnmanagedType.LPStr)] string lpProcName); [DllImport("kernel32.dll", EntryPoint = "FreeLibrary")] public static extern bool FreeLibrary(int hModule); } static int Main(string[] args) { int hModule = NativeMethod.LoadLibrary("AHI_AOD_noarg.dll"); if (hModule == 0) return 1; IntPtr intPtr = NativeMethod.GetProcAddress(hModule, "AHI"); AHI AHI = (AHI)Marshal.GetDelegateForFunctionPointer(intPtr, typeof(AHI)); AHI(); return 0; } } }
c语言结构体问题 关于内存分配问题
``` #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<math.h> #include<string.h> #define MAX 100 #define LEN sizeof(struct book) typedef struct book { char id[20]; char name[30]; float price; }Book; typedef struct List { Book *eBook; int length; }SqList; void InitView() { printf("\n\n\t%c %c %c %c %c %c %c %c %c %c %c 图 书 管 理 系 统 %c %c %c %c %c %c %c %c %c %c %c\n", 26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c\t\t1. 查询图书( Purchase control )\t\t %c\n",25,25); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c\t\t2. 删除图书( price look up )\t\t %c\n",25,25); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c\t\t3. 添加图书( Member management)\t\t %c\n",25,25); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c\t\t4. 修改图书( Financial management)\t %c\n",25,25); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c\t\t0. 退出系统( EXIT )\t\t\t %c\n",25,25); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c\t\t\t\t\t\t\t %c\n",25,25); printf("\t%c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c\n", 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27); } void SearchBook() { } void DeleteBook() { } void AddBook() { } void ReviseBook() { } void InitList(SqList *L) { L->eBook = (Book*)malloc(LEN*MAX); if(!L->eBook){ printf("分配内存失败!\n"); exit(0); } } void main() { int n; SqList *L; InitList(L); while(1){ InitView(); printf("请选择你需要的功能的编号:"); scanf("%d",&n); getchar(); switch(n){ case 1:SearchBook();break; case 2:DeleteBook();break; case 3:AddBook();break; case 4:ReviseBook();break; case 0:exit(0);break; default :printf("输入有误,请重新输入!\n");system("pause");system("cls"); } } } ``` 为什么这样分配内存不行呢? 黑框弹出一回儿就说这程序已经停止工作了 其中LEN是sizeof(Book) ,MAX 为100
为什么 我这代码运行时没输入完就结束?“未完成”????急求!!!!
``` #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct stu { char name[10]; char guan[10]; char number1[20]; char number2[20]; char box[30]; }gs; typedef struct pgs { gs chat; pgs* next; }*ptgs; ptgs head=(ptgs)malloc(sizeof(pgs)); int denglu(); int fun1(); int fun2(); int fun3(); int fun4(); int app(char *p);//计算字符串长度! int main() { int i,a; head->next=NULL; printf("\n\n\t\t\t\t**************************************************************\n"); printf("\t\t\t\t\t\t\t通讯录管理系统\n"); printf("\t\t\t\t\t\t\t\t设计者:\n"); printf("\t\t\t\t**************************************************************\n"); printf("\t\t\t\t欢迎使用通讯录管理系统!!!!!!\n"); printf("\t\t\t\t继续请按 1 ,退出请按 0 !\n"); printf("\t\t\t\t请输入:"); for(i=0;i<2;i=1) { scanf("%d",&a); getchar(); switch(a) { case 1:denglu();break; case 0:break; default:printf("\t\t\t\t请重新输入:");continue; } break; } printf("\t\t\t\t系统即将退出!!!"); printf("\t\t\t\t谢谢使用!!!!!"); } int denglu() { int a,i,j,k; printf("\n\n"); printf("\t\t\t\t**************************************************************\n"); printf("\t\t\t\t\t\t\t>登陆界面<\n"); printf("\n\t\t\t\t\t\t\t登录请输入 1 !\n"); printf("\t\t\t\t\t\t\t注册请输入 2 !\n"); printf("\t\t\t\t\t\t\t退出请输入 0 !\n"); printf("\t\t\t\t请输入:"); for(i=0;i<2;i=1) { scanf("%d",&a); getchar(); switch(a) { case 1:fun1();break; case 2:fun2();break; case 0:break; default:printf("\t\t\t\t请重新输入:");continue; } break; } } int fun1()//登陆函数 { FILE *fp; int i,k; char e[81],f[81],a[81],b[81]; if((fp = fopen("D:\\w\\hao\\mm.txt","r"))==0) { printf("\t\t\t\t文件打开失败!!!!"); denglu(); } printf("\n\n\t\t\t\t**************************************************************"); printf("\n\t\t\t\t\t\t\t<>登陆<>\n"); printf("\n\t\t\t\t用户名:"); scanf("%s",e); printf("\n\t\t\t\t密码:"); scanf("%s",f); fscanf(fp,"%s %s",a,b); fclose(fp); if(strcmp(a,e)==0&&strcmp(b,f)==0) { printf("\n\t\t\t\t登陆成功!!!\n"); fun3(); } else { printf("\n\t\t\t\t用户名或密码错误!!\n"); printf("\t\t\t\t重新登陆请按 1 ,退出登陆请按 0 !\n"); printf("\t\t\t\t请选择:") ; for(i=1;i<2;i=1) { scanf("%d",&k); getchar(); switch(k) { case 1: fun1();break; case 0: denglu();break; default: printf("\t\t\t\t\t\t输入错误,请重新输入:"); continue; } break; } } system("pause"); } int fun2()//注册函数 { FILE *fp; int i,k; fp = fopen("D:\\w\\hao\\mm.txt","w"); char a[81],b[81],c[81]; printf("\n\n\t\t\t\t**************************************************************\n"); printf("\t\t\t\t\t\t\t<>注册界面<>\n"); printf("\n\t\t\t\t请输入用户名:"); scanf("%s",a); printf("\n\t\t\t\t请输入密码:"); scanf("%s",b); printf("\n\t\t\t\t请再次输入密码:"); scanf("%s",c); fputs(a,fp); fputs("\n",fp); fputs(b,fp); fclose(fp); if(strcmp(b,c)==0) { printf("\n\t\t\t\t注册成功!\n"); fun1(); } else { printf("\t\t\t\t输入的两次密码不一样,注册失败!\n"); printf("\t\t\t\t重新注册请输入 1 ,退出注册请输入 0 !"); for(i=1;i<2;i=1) { scanf("%d",&k); getchar(); switch(k) { case 1: fun2();break; case 0: denglu();break; default: printf("\t\t\t\t\t\t输入错误,请重新输入:"); continue; } break; } } system("pause"); } int fun3()//菜单 { int j; char k; printf("\n\n\t\t\t\t**************************************************************\n"); printf("\t\t\t\t\t\t\t<>功能中心<>\n"); printf("\n\t\t\t\t\t\t「\n"); printf("\t\t\t\t\t\t\t1.信息录入 \n"); printf("\t\t\t\t\t\t\t2.信息浏览 \n"); printf("\t\t\t\t\t\t\t3.信息查询 \n"); printf("\t\t\t\t\t\t\t4.信息修改 \n"); printf("\t\t\t\t\t\t\t5.退出系统 \n"); printf("\t\t\t\t\t\t\t 」\n"); printf("\t\t\t\t请输入相应数字:"); for(j=0;j<2;j=1) { scanf("%s",&k); getchar(); switch(k) { case '1':fun4();break; case '2': case '3': case '4': case '5':printf("\t\t\t\t系统即将退出!!!\n");break; default:printf("\t\t\t\t输入错误!!\n请重新输入:");continue; } } system("pause"); } int fun4()//添加联系人! { int t,n,a; char f='y'; ptgs p=head,q; FILE *V; if((V=fopen("D://information.dat","a+"))==NULL) { printf("\t\t\t\t文件无法打开!!!\n"); system("pause"); fun3(); } fprintf(V,"\n\t\t\t\t***************************通讯录列表******************************\n"); while(p->next)p=p->next;//修改上一个指针域,使其指向现在的节点! while(f!='n'&&f!='N') { q=(ptgs)malloc(sizeof(pgs));//malloc内存分配函数;内存大小为sizeof(pgs ). p->next=q; p=q; q->next=q; printf("\t\t\t\t姓名:"); scanf("%s",q->chat.name); printf("\n\t\t\t\t贯籍:"); scanf("%s",q->chat.guan); printf("\n\t\t\t\t电话号码1:"); scanf("%s",q->chat.number1); do { n=0; if(app(q->chat.number1)!=11)//判断号码是否为十一位电话号码 { n=1; printf("\t\t\t\t您输入的号码格式不正确!\n"); printf("\t\t\t\t请重新输入:"); scanf("%s",q->chat.number1); } else { for(t=0;t<11;t++) { if(q->chat.number1[t]<'0'||q->chat.number1[t]>'9')//判断号码是否都为0-9之间的字符 { n=1; printf("\t\t\t\t您输入的号码格式不正确!\n"); printf("\t\t\t\t请重新输入:"); scanf("%s",q->chat.number1); break; } } } }while(n); printf("\n\t\t\t\t电话号码2:"); scanf("%s",q->chat.number2); do { n=0; if(app(q->chat.number2)!=11) { n=1; printf("\t\t\t\t您输入的号码格式不正确!\n"); printf("\t\t\t\t请重新输入:"); scanf("%s",q->chat.number2); } else { for(t=0;t<11;t++) { if(q->chat.number2[t]<'0'||q->chat.number2[t]>'9') { n=1; printf("\t\t\t\t您输入的号码格式不正确!\n"); printf("\t\t\t\t请重新输入:"); scanf("%s",q->chat.number2); break; } } } }while(n); printf("\n\t\t\t\t邮箱:"); scanf("%s",p->chat.box); do { a=0; for(t=0;p->chat.box[t]='\0';t++) { if(p->chat.box[t]=='@') a++; } if(a!=1); { printf("\n\t\t\t\t输入的邮箱格式不合理!\n"); printf("\t\t\t\t请重新输入:"); scanf("%s",p->chat.box); } }while(a!=1); fprintf(V,"\t\t\t%s\t%s\t%s\t%s\t%s",p->chat.name,p->chat.guan,p->chat.number1,p->chat.number2,p->chat.box); p=p->next; printf("\n\t\t\t\t是否继续录入?(Y/N)!\n"); scanf("\t\t\t\t%c",&f); } fclose(V); system("pause"); fun3(); } int app(char *p) { int count,k; k=0; while((p[k] = getchar()) != '\n') { k++; } p='\0'; count=0; for(k=0;p[k]!='\0';k++) { count++; } return count; } ```
大神!!!!!c++ malloc 为什么会导致内存出错
![图片说明](https://img-ask.csdn.net/upload/201812/28/1545990469_171732.png)![图片说明](https://img-ask.csdn.net/upload/201812/28/1545990499_573011.png)
C# winfrom 内存问题,光Ui没逻辑
各位C#前辈,我做C#winfrom 什么逻辑还没写 光Ui就占了600 276K 怎么回事?怎么降低内存消耗? ![图片说明](https://img-ask.csdn.net/upload/201704/11/1491877572_213631.png) ![图片说明](https://img-ask.csdn.net/upload/201704/11/1491877587_245578.jpg)
leetcode上 用calloc分配内存,有时会报错,有时能编译通过,我还啥也没干呢就报错,求大神解答!
C语言用calloc分配内存,有时会报错,有时能编译通过,我还啥也没干呢就报错,同样的代码第一次点能通过,再点就报错了,之后再点偶尔还能通过,求大神帮忙看看 int sumnum(int numsSize) //计算全排列的个数 { int ret =1; for (int i = 1; i <= numsSize; i++) { ret = ret * i; } return ret; } int** permute(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) { int sum = 0; sum = sumnum(numsSize); int **a = (int **)calloc(sum, sizeof(int *)); int *book = (int *)calloc(numsSize, sizeof(int)); for(int i = 0;i<sum;i++) { a[i] = (int*)calloc(numsSize,sizeof(int)); } return a; } 报错信息:================================================================= ==29==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000000028 at pc 0x00000040500d bp 0x7ffd53c29910 sp 0x7ffd53c29900 READ of size 4 at 0x603000000028 thread T0 #3 0x7fcd58c1d82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) 0x603000000028 is located 0 bytes to the right of 24-byte region [0x603000000010,0x603000000028) allocated by thread T0 here: #0 0x7fcd59c3917e in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10c17e) #3 0x7fcd58c1d82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) Shadow bytes around the buggy address: 0x0c067fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c067fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c067fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c067fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c067fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x0c067fff8000: fa fa 00 00 00[fa]fa fa 00 00 00 fa fa fa 00 00 0x0c067fff8010: 00 fa fa fa 00 00 00 fa fa fa 00 00 00 fa fa fa 0x0c067fff8020: 00 00 00 fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff8030: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff8050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==29==ABORTING
weblogic12c 部署的个别web应用 不启动!不启动!不启动! 的问题
本人weblogic小白搞了两天确实搞不懂,请大家帮忙分析下原因,谢谢! 环境:weblogic12c, linux, jdk1.7 问题描述: 1. 问题应用(web项目)部署成功后,无法启动,我是在后台使用的sh startManagedWeblogic.sh Server-dsm http://localhost:7001 命令, 其中Server-dsm是我的其中一个服务器名称,本次部署的三个web项目,只有dsm项目无法启动; 2. 其他项目启动正常 且 windows下tomcat启动正常 且 windows下weblogic12c可以启动(但会报错,估计是jar冲突); 3. 附启动日志: 下面是问题项目的启动日志(尝试过,等多长时间日志****都不会变了): ![图片说明](https://img-ask.csdn.net/upload/201711/13/1510567818_670412.jpg) 我发现正常启动的项目都是在“启动wsee服务”之后开始加载应用信息,但是我这个问题项目就没有这一步,直接跳过了感觉。 下面是本次部署的三个应用示意图: ![图片说明](https://img-ask.csdn.net/upload/201711/13/1510567832_90147.jpg) 我的内存应该是可以的,因为他的启动日志中会说“剩余78%内存”,个人感觉应该是dsm项目的原因,但是不知如何下手,请大家积极发表看法,困扰我三天了,很是郁闷!!!!
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
我是Leader,我被降职成了普通员工,HR说:公司要梯队年轻化
“BAT也不是完美的避风港哇~”这是老刘说的,老刘是BAT某家的一个Leader,职级约类似T7(T族一般是技术族,管理是M族),在BAT某家呆了11年,但是在整个互联网行业推崇,梯队年轻化的氛围时,老刘所在的业务线,产品数据并不是太好看。于是前段时间被约谈了,只是从Leader变成了一线技术,薪水没太大变化,但是已经不是管理层队伍了,团队里的更年轻的人成了他的汇报对象,在这种职场角色反转的事情,...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实...
小白学 Python 爬虫(25):爬取股票信息
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(...
这三名男子靠开加密矿池获得7.22 亿美元,却不兑现收益拿去奢侈挥霍……
来源 /cointelegraph编译/火火酱责编 / Carol出品 / 区块链大本营(blockchain_camp)根据美国司法部12月10日发布的声明,美国新泽西州当局宣布...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
2019年还剩1天,我从外包公司离职了
这日子过的可真快啊,2019年还剩1天,外包公司干了不到3个月,我离职了
只因接了一个电话,程序员被骗 30 万!
今天想给大家说一个刚刚发生在我身边的一起真实的诈骗经历,我的朋友因此被骗走30万。注:为了保护当事人隐私,部分情节进行了修改。1平安夜突来的电话开始以为就像普通的诈骗一样,想办法让你把钱...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
面试官刁难:Java字符串可以引用传递吗?
老读者都知道了,六年前,我从苏州回到洛阳,抱着一幅“海归”的心态,投了不少简历,也“约谈”了不少面试官,但仅有两三个令我感到满意。其中有一位叫老马,至今还活在我的手机通讯录里。他当时扔了一个面试题把我砸懵了:“王二,Java 字符串可以引用传递吗?” 我当时二十三岁,正值青春年华,从事 Java 编程已有 N 年经验(N &lt; 4),自认为所有的面试题都能对答如流,结果没想到啊,被“刁难”了—...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
(总结)阿里面试问了ArrayList,都问了啥?
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
立即提问