- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当pc赋值cdefg时,为什么打印abc。当它变得有趣时,它正在分配 pc= ""cdefg"
void fun(char *pc)
{
pc = malloc(5);
pc = "cdefg";
}
int main()
{
char *p = "abc";
char *c = p;
fun(p);
printf("%s %s\n",p,c);
}
最佳答案
你的程序之所以这样做,是因为 fun
中 pc
的赋值与 中
。指针按值传递; p
的赋值无关>主要fun
所做的任何更改都会被丢弃。
如果您想在函数内分配一个新值,请执行以下三项操作之一:
第一种方法:
void fun(char **ppc) {
*ppc = "cdefg";
}
...
fun(&p); // in main
第二种方法:
void fun(char *pc, size_t len) {
if (len >= 6) {
strcpy(pc, "cdefg");
}
}
...
char p[20]; // in main
fun(p, 20);
第三种方法:
char *fun() {
return "sdefg";
}
...
char *p = fun(); // in main
您的程序还有其他问题 - 例如,malloc
后的分配内存会泄漏。
关于c - 这个程序为 p 和 c 都给出了输出 "abc",但是如何呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38183672/
我试图提示用户输入他们希望程序等待的时间。但是,当我编译该程序时,它会产生以下警告: warning: assignment makes integer from pointer without a
基本上我只是在一段时间后再次开始使用 C++,因为我需要(Degree sorta 命令它)并且我的任务是编写一个简单的程序,该程序将接受一个函数并使用 2 个整数输入(N 和M),返回双输出 (S)
我有一个小型Java加密程序,它读取csv并生成加密的csv文件以上传到VB应用程序,但解密后的VB应用程序无法正确显示字符。 我在 Notepad++ 中打开该文件,并在 notepad++ 中将其
在我的一组问题中,我需要重写一个程序,该程序具有切换到 if/else 语句的程序。 该程序会计算输入的成绩,因此如果我输入“a”,它会计算该成绩,当我退出程序时,它会为用户提供所有输入成绩的最终统计
我在 linux 上开发了一个带有 Qt Eclipse 集成的小型 Qt 项目,我想为同一个项目制作一个 Windows 可执行文件 (.exe)。所以,我的应用程序可以在两个系统上运行。 我的 Q
我正在尝试从 Java 程序执行 Javascript 函数。 Javascript 函数获取 HTML 文件的内容并突出显示特定单词的出现。 是否可以从 webview 对象调用 Javascrip
我想知道这是否可能。我想制作自己的软件来通过远程快门释放来控制快门的释放。从图中我看到它有 3.3 v(无负载)和 1.8v 的阈值电压。我想知道我是否可以使用限制大约 5.25v 的 USB 电缆电
下面是我遇到问题的代码: public class testOutput { public static void main(String[] args) throws Exception {
我是一名优秀的程序员,十分优秀!