为什么使用strdup(value)
(int)value
回报你不同的输出比以前后()? 如何获得相同的输出?转换的char *使用的strdup后诠释
我的小例子坏了,请使用长一个: 这里的完整代码测试:
#include <stdio.h>
#include <iostream>
int main()
{
//The First Part
char *c = "ARD-642564";
char *ca = "ARD-642564";
std::cout << c << std::endl;
std::cout << ca << std::endl;
//c and ca are equal
std::cout << (int)c << std::endl;
std::cout << (int)ca << std::endl;
//The Second Part
c = strdup("ARD-642564");
ca = strdup("ARD-642564");
std::cout << c << std::endl;
std::cout << ca << std::endl;
//c and ca are NOT equal Why?
std::cout << (int)c << std::endl;
std::cout << (int)ca << std::endl;
int x;
std::cin >> x;
}
他们不平等是不是一件好事?如果他们是,它不会是太多的副本... – FatalError 2013-03-23 11:07:07
如何获得相同的输出?不要调用strdup! – john 2013-03-23 11:08:33
你确定你需要'(INT)C',没有'的atoi(C)'?\ – 2013-03-23 11:10:39