急!!!!!!!!!!!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连接起来????

1个回答

你分配的内存不够,字符串需要的大小是长度+1,因为还有一个结束符也需要1个元素。

xy83138
xy83138 感谢。这么简单的问题,我搞忘了。。。
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
急!!!!!!!!!!!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语言 strcat 函数问题
今天实验strcat函数的时候老出现一个问题显示:用于调用的参数太少(本人使用的是VS2017) 自己自行百度看到有这种写法却可以编译通过,求解。 ``` #include <stdio.h> #include <string.h> int main(void) { char d[] = "adiadjwijda"; char *s = "aidwi"; strcat_s(d,s); printf("%s", d); getchar(); } ```
VS2017环境下使用strcat函数问题
``` #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char c[50] = { "People's Republic of'\0'" }; char str[] = { "China" }; printf("%s\n", strcat_s(c, str)); system("pause"); return 0; } ``` ![图片说明](https://img-ask.csdn.net/upload/201905/16/1557998725_683639.png) 使用strcat函数是连接两个字符组。 那么运行结果应该是:People's Republic of China 为何出现的黑框是如图结果??? 求大佬解答QAQ
c语言关于字符串连接函数strcat,连接之后出现乱码
结果不应该是a/home/ 吗? 前面三个是什么东西= = int main(){ char *argv[]={"/home/","a"}; char *p=argv[0]; char *filename=argv[1]; puts(filename);puts(p); char *r=(char*)malloc(sizeof(char)*512); strcat(r,filename); strcat(r,p); puts(r); } ![图片说明](https://img-ask.csdn.net/upload/201810/29/1540815939_752125.png)
关于C++ primer plus内容的问题,求解,谢谢!
请问讲关于strlen、strcat、strcpy、strcmp这些函数的知识具体在那一页,非常感谢!!!!!!!!!!!!!
请问各位大佬,Dev-C++环境下怎么使用MessageBox输出变量呢?
本人曾用cstring里的strcat函数实现,希望有更优方案。 附上代码(无关部分已隐藏,不影响): ``` #include <iostream> #include <cstdio> #include <windows.h> using namespace std; int main() { cout << "输入一个不超过100的数:" << endl; int n; cin >> n; int m = n; …… char c1[1000]; for (int i = 0; m; i++) { for (int i = 0; m; i++) { c1[i] = m % 10 + '0'; m /= 10; } } char c[100] = "……"; strcat(c, c1); strcat(c, "……"); MessageBox(NULL, c, "提示", MB_ICONINFORMATION|MB_OK); return 0; } ```
C++类中要怎样调用字符串?为什么输出是这样的结果?
/*定义一个Dog类,包含age,weight等属性,以及对这些属性操作的方法 实现并测试这个类*/ ``` #include <iostream> #include <string.h> #define N 10 using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ class Dog{ public: void Age(int a); void Weight(int b); void Haircolor(char s[N]); private: int x,y; char c[N]; }; void Dog::Age(int a){ x=a; cout<<"age="<<x<<endl; } void Dog::Weight(int b){ y=b; cout<<"weight="<<y<<endl; } void Dog::Haircolor(char s[N]){ int i=0,n=0; strcat(c,s); n=strlen(c); cout<<"Haircolor="; while((i++)<n){ cout<<c[i]; } } int main(int argc, char** argv) { Dog mydog; //定义对象mydog int x=0,y=0; char c[N]; cin>>x>>y; cin>>c[N]; mydog.Age(x); mydog.Weight(y); mydog.Haircolor(c); return 0; } ```![图片说明](https://img-ask.csdn.net/upload/202003/20/1584669498_184479.png)
C++str类函数问题,求解!
1.题目 输入2个字符串,分别用 ```void str_cat(char*p1,char*p2);int str_cmp(char*p1,char*p2);int str_len(char*p1,char*p2)``` 输出2个字符串的比较结果,拼接字符串和其长度。 2.我的代码 ```#include<iostream>#include<cstring>using namespace std;void str_cat(char*p1,char*p2);int str_cmp(char*p1,char*p2);int str_len(char*p1,char*p2);int main(){const int s=20;char str1[s];char str2[s];cin.getline(str1,s);cin.getline(str2,s);char* p1,p2;p1=str1;p2=str2;str_cat(p1,p2);str_cmp(p1,p2);str_len(p1);}void str_cat(char*p1,char*p2){cout<<strcat(p1,p2);}int str_cmp(char*p1,char*p2){cout<<strcmp(p1,p2);return 0;}int str_len(char*p){return strlen(p);} ``` 请问我错在那些地方,麻烦给我写出来,万分感谢!!!!!!!!!!!!!!!!!!!!!!!!!**要求运行后显示 1.两个字符串比较后的结果 2.拼接后的字符串 3.其长度**
新人学习C语言,使用strcat()函数遇到的一个问题
``` #include <stdio.h> #include <string.h> int main(void) { char *str1 = "angry,"; char str2[] = "excited!"; strcat(str1, str2); puts(str1); getchar(); return 0; } ``` 第一段代码运行时程序会报错,如图所示 ![图片说明](https://img-ask.csdn.net/upload/201609/27/1474982814_217927.png) 如果把str1处的声明换为 ``` char str1[] = "angry,"; ``` 则不会报错。 请问各位大大,这是为什么呢?
求助大神,一道题简单的题希望帮忙改改
6-3 函数重载实现两数相加 (15分) 设计一个重载函数add,该函数有两个参数,可以实现两个类型相同的参数相加的操作,函数返回相加的结果。两个参数可以是整数、实数和字符串,但必须保证两个参数类型相同。 裁判测试程序样例: #include <iostream> #include <string> #include <iomanip> using namespace std; /* 请在这里填写答案 */ int main() { int a, b; double c, d; string s1, s2; cin >> a >> b; cin >> c >> d; cin >> s1 >> s2; cout << add(a, b) << endl; cout << fixed << setprecision(2) << add(c, d) << endl; cout << add(s1, s2) << endl; 输入样例: 3 5 3.3333 5.555555 hello world 输出样例: 8 8.89 helloworld 字符串的add函数不大懂 char add(char *s1,char *s2) { return strcat(s1,s2); }
c语言 strcat语句 gets_s
#include<stdio.h> #include<string.h> int main() { char c1[20], c2[20]; gets_s(c1); gets_s(c2); printf("%s", strcat(c1, c2)); }![![图片说明](https://img-ask.csdn.net/upload/201512/16/1450272006_185622.png)图片说明](https://img-ask.csdn.net/upload/201512/16/1450271989_53586.png) 请问是哪里出错了,而且明显两个字符连接后是没有空格留在中间的,请问一下应该如何改才能让两个字符串中连接后能有空格留在中间,我是菜鸟,希望大神多多指教
PTA同样的代码为什么有时通过有时错误。
####下面是题目,这段代码我提交了几次,有时样例输出通过,有时不通过,但我自己测试明明每次都对的。求大佬指点迷津 ##题目描述: ###7-7 字符串分割拼接 (20分) 很多人抱怨C中的字符串太过难用,其接口太过老旧。例如,字符串的分割(strtok)、链接(strcat)。这一次,我们自己动手实现更现代接口split和join。 函数split接受分隔符c,可以将字符串以字符p为分割成若干个数组,例如"abbc",如果以'b'进行split,会变成数组["a", "", "c"],而以'c'划分则会变成["abb", ""]。 函数join接受连接字符串s将一个字符串数组中的元素,两两相连,构成一个新的字符串,例如["I", "U"]如果用字符串" love "链接,会得到"I love U";而["abc"]中只有一个元素,因此无论用什么连接,始终得到"abc"本身。 注意:不允许使用编程语言内置的字符串操作。如C中的strtok、strcat,Java、Python中的split、join等。 ###输入格式: 输入包含两行。 第一行为原始字符串,长度不超过10^3,不需要读入最后的换行。这一行的输入可能包含有空格、制表符。 第二行依次为分割字符p和连接字符串s。可以假设,p不是一个空格、制表符或者换行。在p以及一个空格后的全部字符(可能包含空格、制表符,不包括换行)均属于连接字符串s。 ###输出格式: 第一行输出使用p分割后的字符串数组,字符串使用双引号包围,两两之间以逗号和空格分隔,数组前后需要有左方括号和右方括号,以换行结束。 第二行输出使用p分割后再使用s链接的字符串,以换行结束。 ###输入样例: abbc b x y ###输出样例: ["a", "", "c"] a x y x y c ``` #include<stdio.h> #include<string.h> int main() { char str[1000][1005],str1[1005],c,s[100],stt[1100]; int num; gets(str1); c=getchar(); getchar(); gets(s); num=strlen(str1); int j=0,k=0; for(int i=0;i<num;i++) { str[j][k]=str1[i]; if(str1[i]!=c) k++; if(str1[i]==c&&str1[i-1]!=c) { str[j][k]='\0'; k=0; str[++j][k]=str1[i]; ++j; } } str[j][k]='\0'; printf("["); for(int i=0;i<=j;i++) { if(strcmp(str[i],"b")!=0) { if(i!=j) printf("\"%s\", ",str[i]); if(i==j) printf("\"%s\"",str[i]); } if(strcmp(str[i],"b")==0&&(i!=j)) { printf("\"\", "); } if(strcmp(str[i],"b")==0&&(i==j)) { printf("\"\""); } if(i==0&&strcmp(str[i],"b")!=0) strcat(stt,str[i]); else { strcat(stt,s); if(strcmp(str[i],"b")!=0) strcat(stt,str[i]); } } printf("]\n"); printf("%s",stt); return 0 ; } ```
字符串连接函数 中的 错误提示“strcat_s”: 用于调用的参数太少 是怎么回事,求指点?
我改成这样后,运行结果又出了问题,strcat_s(buffer, 100,areaNumber); 用的是VS2013 ``` #include <stdio.h> #include <string.h> void main() { char areaNumber[5]; char phoneNumber[12]; int input; char extraNumber[5]; char buffer[25] = { 0 }; printf("请输入区号:"); gets_s(areaNumber, 80); printf("请输入电话号码:"); gets_s(phoneNumber, 80); printf("有分机号吗?(y/n)"); input = getchar(); fflush(stdin); if (input == 'y') { printf("请输入分机号:"); gets_s(extraNumber, 80); strcat_s(buffer, areaNumber); strcat_s(buffer, "-"); strcat_s(buffer, phoneNumber); strcat_s(buffer, "-"); strcat_s(buffer, extraNumber); } else{ strcat_s(buffer, areaNumber); strcat_s(buffer, "-"); strcat_s(buffer, phoneNumber); } printf("您的电话号码是%s。\n", buffer); } ```![图片说明](https://img-ask.csdn.net/upload/201907/06/1562400259_71379.jpg)
如何用C语言字符串相关知识编写这个程序
任意输入两个字符串,将它们连接成一个字符串(不使用strcat函数!)。
C++简单题目,有悬赏!
c++ 写出了strcat和strlen函数,再输出拼接的字符串和其长度 cout<<strcat(p1,p2)<<strlen(strcat(p1,p2));错在哪里? 我编了一个strcat函数和strlen函数,大概是这样void str_cat(char*p1,char*p2)和int str_len(char*p),一个显示void不能用cout输出,一个是int类型不能变为char类型。 还有一个str_cmp(char*p1,*p2)函数怎么输出其结果。 就是void str_cat(char*p1,char*p2); int str_len(char*p) int str_cmp(char*p1,*p2) int main() { cout<<str_cmp(p1,p2); cout<<strcat(p1,p2)<<strlen(strcat(p1,p2)); }这些输出哪里出错了,谢谢!另外C++ primer plus有介绍这几个函数的知识点吗?在多少页?
求助matlab大神,我在mathworks上面复制粘贴了一个视频目标跟踪的代码,老是显示未定义函数或变量 'multiObjectTracker'。这个应该怎么解决呀
我在mathworks上面复制粘贴了一个视频目标跟踪的代码,老是显示未定义函数或变量 'multiObjectTracker'。这个应该怎么解决呀 ``` function MultipleObjectTrackingExample() % Create objects used for reading video and displaying the results. videoObjects = setupVideoObjects('atrium.mp4'); % Create objects used for detecting objects in the foreground of the video. minBlobArea = 400; % Minimum blob size, in pixels, to be considered as a detection detectorObjects = setupDetectorObjects(minBlobArea); tracker = multiObjectTracker(... 'FilterInitializationFcn', @initDemoFilter, ... 'AssignmentThreshold', 30, ... 'NumCoastingUpdates', 22, ... 'ConfirmationParameters', [6 10] ... ); function filter = initDemoFilter(detection) % Initialize a Kalman filter for this example. % Define the initial state. state = [detection.Measurement(1); 0; detection.Measurement(2); 0]; % Define the initial state covariance. stateCov = diag([50, 50, 50, 50]); % Create the tracking filter. filter = trackingKF('MotionModel', '2D Constant Velocity', ... 'State', state, ... 'StateCovariance', stateCov, ... 'MeasurementNoise', detection.MeasurementNoise(1:2,1:2) ... ); end % Count frames to create a sense of time. frameCount = 0; while hasFrame(videoObjects.reader) % Read a video frame and detect objects in it. frameCount = frameCount + 1; % Promote frame count frame = readFrame(videoObjects.reader); % Read frame [detections, mask] = detectObjects(detectorObjects, frame); % Detect objects in video frame % Run the tracker on the preprocessed detections. confirmedTracks = updateTracks(tracker, detections, frameCount); % Display the tracking results on the video. displayTrackingResults(videoObjects, confirmedTracks, frame, mask); end function videoObjects = setupVideoObjects(filename) % Initialize video I/O % Create objects for reading a video from a file, drawing the tracked % objects in each frame, and playing the video. % Create a video file reader. videoObjects.reader = VideoReader(filename); % Create two video players: one to display the video, % and one to display the foreground mask. videoObjects.maskPlayer = vision.VideoPlayer('Position', [20, 400, 700, 400]); videoObjects.videoPlayer = vision.VideoPlayer('Position', [740, 400, 700, 400]); end function detectorObjects = setupDetectorObjects(minBlobArea) % Create System objects for foreground detection and blob analysis % The foreground detector segments moving objects from the % background. It outputs a binary mask, where the pixel value of 1 % corresponds to the foreground and the value of 0 corresponds to % the background. detectorObjects.detector = vision.ForegroundDetector('NumGaussians', 3, ... 'NumTrainingFrames', 40, 'MinimumBackgroundRatio', 0.7); % Connected groups of foreground pixels are likely to correspond to % moving objects. The blob analysis System object finds such % groups (called 'blobs' or 'connected components') and computes % their characteristics, such as their areas, centroids, and the % bounding boxes. detectorObjects.blobAnalyzer = vision.BlobAnalysis('BoundingBoxOutputPort', true, ... 'AreaOutputPort', true, 'CentroidOutputPort', true, ... 'MinimumBlobArea', minBlobArea); end function [detections, mask] = detectObjects(detectorObjects, frame) % Expected uncertainty (noise) for the blob centroid. measurementNoise = 100*eye(2); % Detect foreground. mask = detectorObjects.detector.step(frame); % Apply morphological operations to remove noise and fill in holes. mask = imopen(mask, strel('rectangle', [6, 6])); mask = imclose(mask, strel('rectangle', [50, 50])); mask = imfill(mask, 'holes'); % Perform blob analysis to find connected components. [~, centroids, bboxes] = detectorObjects.blobAnalyzer.step(mask); % Formulate the detections as a list of objectDetection objects. numDetections = size(centroids, 1); detections = cell(numDetections, 1); for i = 1:numDetections detections{i} = objectDetection(frameCount, centroids(i,:), ... 'MeasurementNoise', measurementNoise, ... 'ObjectAttributes', {bboxes(i,:)}); end end function displayTrackingResults(videoObjects, confirmedTracks, frame, mask) % Convert the frame and the mask to uint8 RGB. frame = im2uint8(frame); mask = uint8(repmat(mask, [1, 1, 3])) .* 255; if ~isempty(confirmedTracks) % Display the objects. If an object has not been detected % in this frame, display its predicted bounding box. numRelTr = numel(confirmedTracks); boxes = zeros(numRelTr, 4); ids = zeros(numRelTr, 1, 'int32'); predictedTrackInds = zeros(numRelTr, 1); for tr = 1:numRelTr % Get bounding boxes. boxes(tr, :) = confirmedTracks(tr).ObjectAttributes{1}{1}; % Get IDs. ids(tr) = confirmedTracks(tr).TrackID; if confirmedTracks(tr).IsCoasted predictedTrackInds(tr) = tr; end end predictedTrackInds = predictedTrackInds(predictedTrackInds > 0); % Create labels for objects that display the predicted rather % than the actual location. labels = cellstr(int2str(ids)); isPredicted = cell(size(labels)); isPredicted(predictedTrackInds) = {' predicted'}; labels = strcat(labels, isPredicted); % Draw the objects on the frame. frame = insertObjectAnnotation(frame, 'rectangle', boxes, labels); % Draw the objects on the mask. mask = insertObjectAnnotation(mask, 'rectangle', boxes, labels); end % Display the mask and the frame. videoObjects.maskPlayer.step(mask); videoObjects.videoPlayer.step(frame); end end ```
用指针方法实现:输入两个字符串分别存入字符数组中,再将第二个字符串连接到第一个字符串之后并输出(不能
用指针方法实现:输入两个字符串分别存入字符数组中,再将第二个字符串连接到第一个字符串之后并输出(不能调用strcat()函数)。
关于MATLAB中SVM的imread指令的问题
之前下载了图像分类识别猫狗的程序,想照着这个程序去建一个txt文件存放图片名字然后去识别txt文件里描述的图片,但是用imread指令却提示无法打开要读取的文件,请问一下各位大佬这个报错该怎么解决啊 1. 完整代码: ``` ReadList1 = textread('list1.txt','%s','delimiter','\n');%载入正样本列表 sz1=size(ReadList1); label1=ones(sz1(1),1); %正样本标签设为1 ReadList2 = textread('list2.txt','%s','delimiter','\n');%载入负样本列表 sz2=size(ReadList2); label2=zeros(sz2(1),1);%负样本标签设为0 label=[label1',label2']';%标签汇总 total_num=length(label); data=zeros(total_num,1764); %读取正样本并计算hog特征 for i=1:sz1(1) name= char(ReadList1(i,1)); image=imread(strcat('D:\US\01\',name)); im=imresize(image,[64,64]); img=rgb2gray(im); hog =hogcalculator(img); data(i,:)=hog; end %读取负样本并计算hog特征 for j=1:sz2(1) name= char(ReadList2(j,1)); image=imread(strcat('D:\US\02\',name)); im=imresize(image,[64,64]); img=rgb2gray(im); hog =hogcalculator(img); data(sz1(1)+j,:)=hog; end [train, test] = crossvalind('holdOut',label); cp = classperf(label); svmStruct = svmtrain(data(train,:),label(train)); save svmStruct svmStruct classes = svmclassify(svmStruct,data(test,:)); classperf(cp,classes,test); fprintf('CorrectRate = %f\n',cp.CorrectRate); ``` 2. 报错部分: %读取正样本并计算hog特征 for i=1:sz1(1) name= char(ReadList1(i,1)); image=imread(strcat('D:\US\01\',name)); im=imresize(image,[64,64]); img=rgb2gray(im); hog =hogcalculator(img); data(i,:)=hog; end 3.报错提示: 错误使用 imread (line 347) 无法打开要读取的文件 "D:\US\01\"。您可能没有读取权限。 出错 test4 (line 21) image=imread(strcat('D:\US\01\',name));
C语言实现strcat的问题
``` #include <stdio.h> #include <stdlib.h> #define MAX_STR_LEN 10000 char *strcpy(char *t,char *s){ char *strDest=t; while((*t++=*s++)); return strDest; } char * str_cat(char *str,char *s) { char *temp; temp = (char *)malloc(sizeof(char)*MAX_STR_LEN+1); strcpy(temp,str); while (*temp!='\0') temp++; while (*s!='\0') { *temp++=*s++; } *temp='\0'; return temp; } int main() { char s[MAX_STR_LEN], str[MAX_STR_LEN], *p; #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); #endif // ONLINE_JUDGE while(gets(s) != NULL && gets(str) != NULL) { p = str_cat(str, s); puts(str); puts(s); puts(p); free(p); } return 0; } ``` 函数要不改变str和s,动态内存分配一个新变量,结果放到这个变量然后返回。 哪里出错了呢..最后的temp总是空. --- ``` 要求输入 Look! I love china! 输出 I love china! Look! I love china! Look! ```
编写MATLAB,将多帧BMP格式静止图像自动转换为AVI文件,为什么总是提示文件不存在?
总是显示D:\avi-bmp\.bmp不存在,是为什么? temp1='D:\avi-bmp\'; temp2='.bmp'; v=VideoWriter('test.avi'); open(v); for i=1:2 frame=imread(strcat(temp1,num2str(i,'%d'),temp2)); writeVideo(v,frame); end close(v); ``` ``` ``` ```
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
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 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
C++(数据结构与算法):62---搜索树(二叉搜索树、索引二叉搜索树)
一、搜索树的复杂度分析 本文考察二叉搜索树和索引二叉搜索树 二叉搜索树的渐进性能可以和跳表媲美: 查找、插入、删除操作所需的平均时间为Θ(logn) 查找、插入、删除操作的最坏情况的时间为Θ(n) 元素按升序输出时所需时间为Θ(n) 虽然在最坏情况下的查找、插入、删除操作,散列表和二叉搜索树的时间性能相同,但是散列表在最好的情况下具有超级性能Θ(1) 不过,对于一个指定的关键...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问