小编Jos*_*eek的帖子

免费如何知道免费多少?

在C编程中,您可以将任何类型的指针作为参数传递给free,它如何知道要释放的已分配内存的大小?每当我传递指向某个函数的指针时,我也必须传递大小(即10个元素的数组需要接收10作为参数来知道数组的大小),但我不必将大小传递给自由功能.为什么不,并且我可以在我自己的函数中使用相同的技术来避免需要购买数组长度的额外变量?

c size free pointers

361
推荐指数
4
解决办法
6万
查看次数

删除特定提交

我和一位朋友在一个项目上合作,他编辑了一堆本不应该编辑过的文件.不知怎的,我将他的作品合并到了我的作品中,或者当我拉动它时,或者当我试图选择我想要的特定文件时.我一直在寻找和玩很长一段时间,试图弄清楚如何删除包含对这些文件的编辑的提交,它似乎是revert和rebase之间的折腾,并没有简单的例子,并且docs假设我比我知道的更多.

所以这是问题的简化版本:

鉴于以下情况,如何删除提交2?

$ mkdir git_revert_test && cd git_revert_test

$ git init
Initialized empty Git repository in /Users/josh/deleteme/git_revert_test/.git/

$ echo "line 1" > myfile

$ git add -A

$ git commit -m "commit 1"
[master (root-commit) 8230fa3] commit 1
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 myfile

$ echo "line 2" >> myfile

$ git commit -am "commit 2"
[master 342f9bb] commit 2
 1 files changed, 1 insertions(+), 0 deletions(-)

$ echo "line 3" >> myfile

$ …
Run Code Online (Sandbox Code Playgroud)

git commit revert cherry-pick

260
推荐指数
7
解决办法
27万
查看次数

如何在解释模式下运行haskell文件

我被告知你可以解释haskell文件(我认为这意味着它们将像Ruby/Python/Perl一样工作).但是,无法在ghc上找到命令行选项来执行此操作.它总是想编译我的文件.看看ghci也是如此,但它总是把我扔进一个repl.

我基本上只想做ghc -i MyFile.hs(其中-i是一个组成的标志,我假装与解释模式相关)并让它执行以便我可以在我尝试创意和学习时获得快速反馈.

haskell interpreted-language ghc ghci

70
推荐指数
3
解决办法
3万
查看次数

是否可以将标签的地址存储在变量中并使用goto跳转到它?

我知道每个人都讨厌搞砸.在我的代码中,由于我考虑过并且很满意的原因,他们提供了一个有效的解决方案(即我不是在寻找"不要那样做"作为答案,我理解你的预订,并理解我为什么使用它们无论如何).

到目前为止,它们一直很棒,但我希望以这样的方式扩展功能,这要求我基本上能够存储指向标签的指针,然后再转到它们.

如果此代码有效,它将代表我需要的功能类型.但它不起作用,30分钟的谷歌搜索没有透露任何东西.有没有人有任何想法?

int main (void)
{
  int i=1;
  void* the_label_pointer;

  the_label:

  the_label_pointer = &the_label;

  if( i-- )
    goto *the_label_pointer;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c label pointers goto memory-address

53
推荐指数
8
解决办法
3万
查看次数

R - 测试第一次出现string1后是否为string2

我有一个R字符串,格式

s = `"[some letters and numbers]_[a number]_[more numbers, letters, punctuation, etc, anything]"`
Run Code Online (Sandbox Code Playgroud)

我只是想要一种检查是否s包含"_2"在第一个位置的方法.换句话说,在第一个_符号之后,单个数字是"2"吗?我如何在R中执行此操作?

我假设我需要一些复杂的正则表达式?

例子:

39820432_2_349802j_32hfh = TRUE
Run Code Online (Sandbox Code Playgroud)

43lda821_9_428fj_2f = FALSE(注意那里有一个_2,但没有在正确的位置)

r contains

52
推荐指数
2
解决办法
12万
查看次数

C编程:转发变量参数列表

我正在尝试编写一个接受可变数量参数的函数,比如printf,做一些事情,然后将变量列表传递给printf.我不知道如何做到这一点,因为它似乎必须将它们推入堆栈.

大概是这样的东西

http://pastie.org/694844

#include <stdio.h>
#include <stdarg.h>

void forward_args( const char *format , ... ){
  va_list arglist;
  printf( format, arglist );
}


int main (int argc, char const *argv[]){
  forward_args( "%s %s\n" , "hello" , "world" );  return 0;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c variables printf arguments forward

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

24
推荐指数
1
解决办法
5241
查看次数

如何在Emacs中开始使用Xiki?

试图让xiki工作.

它安装:

$ xiki directory
/Users/joshcheek/.rvm/gems/ruby-1.9.3-p194/gems/xiki-0.6.3/
Run Code Online (Sandbox Code Playgroud)

移动所有文件的shell脚本成功执行AFAIK,但我关闭了那个shell,因此无法显示其输出.但是,没有什么能比我错了.

看起来服务器正在运行:

$ xiki status
xiki_process.rb: running [pid 93257]
Run Code Online (Sandbox Code Playgroud)

我安装了emacs(我在安装xiki之前安装了它),并设置了init文件:

$ cat ~/.el4r/init.rb 
# Beginning of the el4r block:
# RCtool generated this block automatically. DO NOT MODIFY this block!
# This is the el4r initialization file.
# End of the el4r block.
# User-setting area is below this line.
# User-setting area is below this line.

$LOAD_PATH.unshift "/Users/joshcheek/.rvm/gems/ruby-1.9.3-p194/gems/xiki-0.6.3/lib"
require 'xiki'
Xiki.init

KeyBindings.keys   # Use default key bindings
Themes.use "Default"  # Use …
Run Code Online (Sandbox Code Playgroud)

ruby emacs editor xiki

19
推荐指数
1
解决办法
4196
查看次数

如何测试使用机械化的ruby应用程序

我写了一个小程序,它使用Mechanize来遍历一个站点.

我想为它编写测试,但是每次运行测试时都不希望它实际登录到站点.我想嘲笑互联网,所以当它进入某个网站时,它只返回存储的结果.

这是一个小例子,假装我的代码的目的是从谷歌主页上拉链接,所以我写了一个测试,以确保我的代码找到的第一个链接有文本"图像".我可能写这样的东西:

require 'rubygems'
require 'mechanize'
require 'test/unit'

def my_code_to_find_links
  google = WWW::Mechanize.new.get('http://www.google.com')
  # ...
  # some code to figure out which liks it wants
  # ...
  google.links
end

class TestGoogle < Test::Unit::TestCase
  def test_first_link_is_images
    assert_equal 'Images' , my_code_to_find_links.first.text
  end
end
Run Code Online (Sandbox Code Playgroud)

如何模拟google.com以便我可以测试my_code_to_find_links而无需实际访问互联网的所有开销?

谢谢 - 乔什

ruby testing mechanize mocking

18
推荐指数
1
解决办法
3426
查看次数

没有"!",Vim不会写文件 有时候(E13)

经常(每小时多次),当我保存文件时:w,vim告诉我"E13:文件存在(添加!覆盖)"

例

我不知道为什么会这样,我无法可靠地重现它,感觉随意.

是我的vimrc,请注意它设置nobackup,, nowritebackupnoswapfile,并且有一个函数来删除在保存文件时运行的尾随空格.

此外,我倾向于一次打开20个vims,全部是背景,通常编辑相同的文件.同样不可能的是,我在多个窗口(即:vsp)中打开相同的缓冲区并可能打开它,然后使用e命令重新打开它,可能来自相对文件路径,或者可能来自绝对路径(cmap %/ <C-R>=expand("%:p:h")."/"<CR>).不知道这是否重要.下次我遇到这个问题时,我会检查一下ls并报告任何奇怪的事情.

更新:

当我试图保存"lib/seeing_is_believing/wrap_expressions.rb"时(注意这是一个与gif中的文件不同的文件),这又发生了.这是ss,它的缓冲区3:

LS

Update2(适用于@mMontu)

我刚刚意识到这里发生了两个错误.截图中的那个是readonly的东西.gif中的那个更常见,E13: File exists (add ! to override)

我刚刚点击的是E13 File exists,对于这个,readonly没有设置:

readonly未设置

更新3

我很确定问题是ZoomWin插件.我把它换成了新版本,但它根本无法正常工作.所以我暂时停止使用它,并没有这个问题.然后将其切换回来,b/c我错过了它的功能(这是我最喜欢的vim插件),问题又重新开始了.可能是ZoomWin与NerdTree窗口一起使用.可能不是lib作者的错,vim一般看起来很脆弱和错误.也许我会尝试NeoVim,看看他们是否做得更好.也许是时候再次尝试Atom或Emacs了.

vim

11
推荐指数
1
解决办法
2991
查看次数