我是C的新手所以请纠正我的错误.
这里的代码有点像我的代码
//typdef stuff for apple, *apple_t here
apple_t get() {
apple a;
a.num = 0;
apple_t ap = &a;
printf("set num to %d\n", ap->num);
return ap;
}
// ap above is placed into read(ap)
void read(apple_t ap) {
printf("num: %d\n", ap->num);
}
Run Code Online (Sandbox Code Playgroud)
为什么对于"set"打印ap-> num == 0,但是当我在read函数中执行printf时,我会得到一些像-1218550893这样的垃圾编号?这是怎么回事?是否释放了整数集?C做什么?你是如何解决这个问题的?
如果我有
// types.go
type S string
func (s *S) Lower() *S {
*s = S(strings.ToLower(string(*s)))
return s
}
Run Code Online (Sandbox Code Playgroud)
`
// in another file
import "u/types"
func main() {
s := types.S("asdf")
if s == "asdf" {
s.Lower()
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将types.S("asdf")缩短为S("asdf")?
有没有办法从其他文件小写方法调用?egsLower()=> s.lower()?
使用postgres 9.3,go 1.6
我一直在尝试与go pq库一起使用事务。
// Good
txn, _ := db.Begin()
txn.Query("UPDATE t_name SET a = 1")
err := txn.Commit() // err is nil
// Bad
txn, _ := db.Begin()
txn.Query("UPDATE t_name SET a = $1", 1)
err := txn.Commit() // Gives me a "unexpected command tag Q" error
// although the data is committed
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我执行Query带有参数的时,总是会从中得到一个unexpected command tag Q错误Commit()。这是什么错误(什么是Q?),为什么会出现此错误?
我相信这是造成错误的地方。
我确定答案很明显,但我还没有使用html/css那么多......
浏览器顶部和第一个div之间有一个空白区域.我真的不明白为什么存在差距.我没有在CSS中使用margin-top或padding-top或border-top,那么为什么会有差距呢?
谢谢!
说我有一个字符串"like_this_string",我想把它分成两部分:"like_this"和"string".所以我可以做到这一点
first, last = "like_this_string".something
first == "like_this" # true
last == "string" # true
Run Code Online (Sandbox Code Playgroud)
所以last零件总是string在最后一个之后"_",first零件总是string在最后一个之前"_".我宁愿这样做不是字符串数组的组合更有效的方式,得到最后一个项目,然后重新加入阵列(例如split,pop, join).
我是C的新手,所以请随时纠正错误.
我有一些代码有点像这样:
// some variables declared here like int array_size
char* cmd = (char*)malloc(array_size*sizeof(char));
for(;;){
// code here sets cmd to some string
free(cmd);
array_size = 10;
cmd = (char*)malloc(array_size*sizeof(char));
// print 1
printf(cmd);
printf("%d\n", strlen(cmd));
// repeat above for some time and then break
}
Run Code Online (Sandbox Code Playgroud)
所以我做了一段时间的循环,看看它打印的是什么.我期望的是每次字符串为空并且长度为0.但是,情况并非如此.显然有时候malloc会获得带有垃圾的内存并打印出来并且带有垃圾的内存有一个长度!= 0.所以我想通过在malloc返回时将新的char字符串中的所有char设置为'\ 0'来解决这个问题.但是,我很确定我做错了什么.为什么即使在我释放字符串并执行一个全新的malloc后,我的字符串与垃圾邮件不同,第一个malloc?我究竟做错了什么?
来自django,我们有一个名为select_related的东西,它在执行查询时执行连接,以便也获取相关对象的数据.
例如
# rails + select_related
p = Person.where(job: 1).select_related("job_name")
# so the return query list has objects that
# can call person.job.job_name without another query
# because selected_related did a join on jobs table
Run Code Online (Sandbox Code Playgroud)
你是如何在rails/activerecord中做到这一点的?