小编pnk*_*lix的帖子

如果`malloc(0)`返回一个非空指针,我可以将它传递给`free`吗?

我一直在阅读有关malloc当您请求零大小的块时的行为的讨论.

我理解malloc(0)是实现定义的行为,它应该返回一个空指针,或者我仍然不应该访问的非空指针.(这是有道理的,因为不能保证它指向任何可用的内存.)

但是,如果获得这样一个不可访问的非空指针,我是否允许以free通常的方式传递给它?或者这是非法的,因为我得到的指针malloc(0)可能不指向实际分配的内存块?

具体而言,以下代码是否具有明确定义的行为:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int* x = (int*) malloc(0);
    if (x == NULL) {
        printf("Got NULL\n");
        return 0;
    } else {
        printf("Got nonnull %p\n", x);
    }
    free(x); // is calling `free` here okay?
}
Run Code Online (Sandbox Code Playgroud)

c malloc free memory-management

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

git:找不到命令(在OS X 10.5上)

我最近尝试使用git时收到此错误.我不确定错误何时开始,因为我很少使用git.我曾经使用它.我没有改变任何关于它或我知道的机器.现在它不起作用.

我已经完成并使用安装程序重新安装了最新版本,我仍然在终端中收到相同的错误.

有没有人听过这个?安装程序运行正常,没有错误,但它仍然无法识别终端中的"git"命令.

我正在运行OS 10.5

编辑

根据下面的响应,我指向我的PATH变量,我认为这是问题所在.我一度安装了MacPorts,这改变了我的.profile我不知道如何更改它.我原来的.profile是这样的:

alias g='git'
export PS1='$(git branch &>/dev/null; if [ $? -eq 0 ]; then \
echo "\[\033[00m\]$(git branch grep ^*sed s/\*\ //) "; fi)\$\[\033[00m\] '
export LC_CTYPE=en_US.UTF-8
export PATH=$PATH:/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

我的新.profile是这样的:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
Run Code Online (Sandbox Code Playgroud)

如何将这两个文件合为一个?

git macos

19
推荐指数
5
解决办法
4万
查看次数

如何在Emacs,TeX输入法中禁用下划线(_)下标

在Emacs的,而编辑的我自己的笔记文本文件(一个.txt文件,不是一个.tex文件),我使用的M-x set-input-method Ret TeX,为了方便地访问各种Unicode字符.因此,例如,键入\tospace会导致"→"插入到文本中,并且键入x^2会导致"x 2 "被插入,因为我使用的字体分别支持Unicode代码点0x21920x00B2.

该方法中的一个特殊处理字符是下划线键_.但是,我用于Emacs的字体似乎不支持各种下标字符的代码点,例如下标零(代码点0x2080),所以当我输入时_0,我得到的东西在我的输出中呈现为一个空白._0在这种情况下,我宁愿只有两个字符.

可以得到_0由尴尬的击键序列_spacedel0,因为space在序列的中间按键导致的Emacs中止TeX的输入法.但这很尴尬.

所以,我的问题是:_当我使用TeX输入法时,如何在本地自定义我的Emacs以便不重新映射密钥?或者我如何创建一个TeX输入法的修改克隆(或扩展等),从它的魔力中省略下划线?

到目前为止我尝试过的事情:

  • 我已经完成M-xdescribe-key_; 但它self-insert-command就像许多其他文字字符一样受到限制.我确实看到了post-self-insert-hook那里,但我没有尝试过用它来破坏TeX输入法.

到目前为止我没有尝试过的事情:

  • 我没有尝试过任何有关输入法架构或其源代码的知识.从我的代码和方法的快速范围.它似乎不是我能迅速进入的东西.

emacs customization input

13
推荐指数
1
解决办法
1572
查看次数

标签 统计

c ×1

customization ×1

emacs ×1

free ×1

git ×1

input ×1

macos ×1

malloc ×1

memory-management ×1