小编Gus*_*ush的帖子

c ++:本地数组定义与malloc调用

这有什么区别:

somefunction() {  
    ...  
    char *output;   
    output = (char *) malloc((len * 2) + 1);  
    ...  
}  
Run Code Online (Sandbox Code Playgroud)

还有这个:

somefunction() {  
    ...  
    char output[(len * 2) + 1];  
    ...  
}  
Run Code Online (Sandbox Code Playgroud)

什么时候比另一个更合适?

谢谢大家的回答.这是一个总结:

  1. 恩.1是堆分配
  2. 恩.2是堆栈分配
  3. 堆栈有一个大小限制,用于较小的分配
  4. 你必须释放堆分配,否则它会泄漏
  5. 一旦函数退出,就无法访​​问堆栈分配
  6. 在您释放堆分配(或应用程序结束)之前,可以访问堆分配
  7. VLA不是标准C++的一部分

更正欢迎.

这里有一些关于堆与堆栈之间差异的解释:
堆栈和堆的内容和位置是什么?

c c++ arrays malloc

6
推荐指数
3
解决办法
5446
查看次数

bash技巧将文件复制到以前访问过的目录

这是场景 -

你是在狂欢

:〜/ dirA $ cd/dirb

:/ dirb $ cp filex __here_i_want_trick_to_reference_dirA

类似技巧的例子是"cd - ",它将你带入以前访问过的目录.

我想要这个,因为实际上,我正在处理的路径是巨大的,我正在寻找捷径.

此外,一个处理这个的技巧:

:$/cd x

:x $/cd y

等等

:y $/cp file _ref_to_original_dir_a

我正在寻找实现这一点的最少侵入性的方法,如果第二部分在没有太多恶作剧的情况下是不可行的,那么它对我的使用可能是不值得的.

谢谢

只是一个更新 - 感谢您的回复.

http://www.hccp.org/modding-cd.html

该页面描述了我的选择.它只是为pushd解决方案添加混合别名.

bash copy environment-variables

2
推荐指数
2
解决办法
1067
查看次数

标签 统计

arrays ×1

bash ×1

c ×1

c++ ×1

copy ×1

environment-variables ×1

malloc ×1