两个人 发表于 2016-1-4 18:12:28

strcat_s怎么用?

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
void main()
{
        char ip="abcdefg";
char *pi=new char ;;

strcat_s(pi,sizeof(pi)+1,ip);//应该是这里出了问题。strlen也试过了还是不行。数值也试过了。
cout<<pi;
cin.get();
}
一运行就出现::

machimilk 发表于 2016-1-4 18:12:29

#include <iostream>
using namespace std;
int main()
{
        char a="Hello ";
        char b[]="World!";
        strcat_s(a,sizeof(a),b);
        cout<<a<<endl;
        system("pause");
        return 0;
}

错过会难过 发表于 2016-1-12 19:21:08

strcat_s(pi,sizeof(pi)+1,ip);//应该是这里出了问题。strlen也试过了还是不行。数值也试过了。
这是因为strcat_s函数的第二个形参需要你传入的是pi的最大容量,
而你sizeof(pi)得到的是4,因为pi是一个指针,sizeof是求类型的长度,指针的长度都是4,
你只能如实填入pi指向的内存空间的最大长度 , strlen是计算一个字符数组的字符个数,字符个数不等于数组最大容量,因为字符串是以'\0'结尾的,如果你的数组的最大长度是100,而你的字符串只有两个字符,那么strlen返回的是2
页: [1]
查看完整版本: strcat_s怎么用?