【发布时间】:2016-06-09 17:28:42
【问题描述】:
我正在研究 c++ 语义和语法,我真的不知道这段代码有什么问题,它编译但停止工作。我会感谢你的帮助,谢谢。
#include <iostream>
#include <string.h>
using namespace std;
char* func(char* M)
{
int initval = 2;
char *x= new char[10];
x="idea";
strcpy(x, M+initval);
return x;
}
int main()
{
char* x;
char s[10]= "alguna";
x= func(s);
cout << *x << endl;
return 0;
}
【问题讨论】:
-
这段代码的主要问题是它没有正确缩进,而且完全不可读。因此,通常想帮助您的大多数人都会忽略这个问题,因为您甚至没有尽最小的努力使您的代码可读。
-
幸运的是,像我这样的人通常会很快解决这个问题......
-
欢迎来到 Stack Overflow!听起来您可能需要学习如何使用调试器来逐步执行代码。使用好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏差在哪里。如果您要进行任何编程,这是必不可少的工具。进一步阅读:How to debug small programs
-
首先学习 C 是一种不同的语言,具有一些不同的语义。不要垃圾标签。
-
char *x = new char[10]; x = "idea";是内存泄漏。 (也不应该编译(const))。