小编Anu*_*uri的帖子

c char数组和指针

#include<stdio.h>
int main(){

char a[6],*p;

a[0]='a';
a[1]='b';
a[2]='c';
a[3]='4';
a[4]='e';
a[5]='p';
a[6]='f';
a[7]='e';
printf("%s\n",a);
printf("printing address of each array element");
p=a;

printf("%u\n",&p[0]);
printf("%u\n",p+1);
printf("%u\n",a+2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出如下......

anusha@anusha-laptop:~/Desktop/prep$ ./a.out
abc4epfe
printing address of each array element3216565606
3216565607
3216565608
Run Code Online (Sandbox Code Playgroud)

当我声明数组char a[6]为什么它允许我分配一个值a[7]?是否不需要为最后一个元素追加空字符?

另外p = a => p保存char数组a的第一个元素的地址.我不明白在地址(p[0])前放置一个'&'是怎么回事.&p[0]是指a至少对我来说,第一个元素的地址的地址没有任何意义.

为什么打印正确的输出?

c arrays string pointers memory-address

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

类似指针的区别

相同类型的两个指针的差异总是一个.

#include<stdio.h>
#include<string.h>
int main(){
int a = 5,b = 10,c;
int *p = &a,*q = &b;
c = p - q;
printf("%d" , c);
return 0;
}

Output is 1.
Run Code Online (Sandbox Code Playgroud)

我不明白其背后的原因

c pointers

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

响应单击Vaadin表行的特定列

我是Vaadin的新手.我有三种不同的看法.View1有一个包含column1,column2的表.对于特定的表行,当我单击column1时,我想导航到view2,当我点击column2时,我希望能够导航到view3.我可以使用ValueChanged事件作为整体响应行单击.但我如何处理单击行的特定列?我处理行单击的方式如下

summaryTable.addValueChangeListener(new Property.ValueChangeListener() {
    @Override
    public void valueChange(Property.ValueChangeEvent event) {
        String provider = summaryTable.getContainerProperty(summaryTable.getValue(), "provider").toString();
        UI.getCurrent().getNavigator().navigateTo(ViewsEnum.PROVIDERS.viewName()+"/"+provider);
    }
});
Run Code Online (Sandbox Code Playgroud)

请帮忙

vaadin vaadin7

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

内存是malloc'ed而不是释放

我看过这个 -

当程序终止时,将释放由malloc(例如)分配并且未使用free()函数释放的内存.并且它由opearting系统完成.那么什么时候有或没有垃圾收集器进入图片?

或者是并非所有操作系统都在程序终止时自动释放内存?

c memory malloc pointers memory-management

0
推荐指数
1
解决办法
224
查看次数