V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  verrickt  ›  全部回复第 9 页 / 共 12 页
回复总数  224
1  2  3  4  5  6  7  8  9  10 ... 12  
2018-08-04 11:00:12 +08:00
回复了 sharkv 创建的主题 Java Arrays 中的 copyOf 方法
不知道 Java 里 primitive type 能不能有数组。如果可以的话,那加了泛型限制后就没法从 byte[]拷贝到 int[]了吧。不是做 Java 的,无条件猜测下。
@dummyuser PC 的网易云 UWP 可以扫描出你本地的音乐是从他那里下载的。不知道其他平台的行为的。
从网易云下下来的音乐的属性有一个是'163keybalabala'的值。追踪靠的就是这个。把这个值清掉世界就清静了
2018-08-02 08:43:38 +08:00
回复了 HXM 创建的主题 问与答 想在咸鱼入一个 Lumia 929,应该注意些什么?
买的话确认刷机锁是关闭的(具体啥名字忘了,貌似是 recovery lock?)。

叛逃 Android 一年多最怀念的是 wp 的开始屏幕,比一票 launcher 好用多了
2018-08-01 18:10:59 +08:00
回复了 AllOfMe 创建的主题 程序员 真为摩拜单车抓一把冷汗
放的明明是十送红军 :doge
2018-08-01 14:33:37 +08:00
回复了 kejijuhui 创建的主题 iGame 有没有那种真实的模拟战争的游戏
如果 po 想试试战旗的话推荐 xcom
2018-07-23 22:11:45 +08:00
回复了 zy820 创建的主题 问与答 Python socketserver 写个 TCP server 接收数据
TCP 是基于 stream 的,po 想在 tcp 上以 packet 的概念通讯的话需要,message framing。
https://blog.stephencleary.com/2009/04/message-framing.html
先看文档,把语法大致过一遍,然后把类型系统类比到自己最熟悉的语言上,看看异同。在查查语言的强项就差不多了可以动手写了。以我的经验,知道自己要用这门语言干什么的时候是效率最高。用不到的东西以后用得到了或者想系统学习的时候在看完全来得及
2018-07-19 12:09:14 +08:00
回复了 baskice 创建的主题 问与答 windows10 无法升级, 0xC1900101-0x20017 错误
我是 fast ring 更新失败。也是 0xC1900101,不过是第三次重启后才开始回滚。日志说的是原 os 的一个驱动迁移失败。照着官方的 trouble shoot 来了好几遍都不管用,最后忍无可忍格盘重装了
如果楼主不晕 3d 画面的话,安利一波 xcom2。战旗游戏,随时暂停,不考验操作,只看战术。比较像我这样的适合手残党
2018-07-03 12:11:37 +08:00
回复了 kbs 创建的主题 Python 现在大家如何在 windows 上安装 Python
choco install python3
2018-06-23 19:57:01 +08:00
回复了 Cbdy 创建的主题 编程 为什么函数命名参数是不好的设计?
Who need parameters if every state is a static variable?
2018-06-23 12:06:52 +08:00
回复了 codechaser 创建的主题 Java 为什么这个 MyJDialogTest 对话框会在延时 3 秒后才显示?
做 WPF 的无条件猜测下,DialogTest 的 ctor 在 UI 线程上跑,sleep 阻塞了 ui 线程,所以 delay3 秒。
2018-06-18 15:08:54 +08:00
回复了 nevermind1998 创建的主题 macOS 藍芽滑鼠的延遲感??
关闭 WiFi 之后再试试?
2018-06-14 23:17:54 +08:00
回复了 kennedy32 创建的主题 硬件 2 个 1080p 上到 4k 有几个疑问
1. 用 4 个像素代替原来的一个像素,显示效果更细腻
2. 4k 屏对字体渲染的加成巨大。你可以试试把现在的 dpi 设置成 150%,看看 UWP 里的字体是不是更细腻了。
2018-06-11 13:29:31 +08:00
回复了 MrXiong 创建的主题 Java Java 超大文件统计
先对文件用外部排序按 key 排序。然后读一行,看下一行的 key,一样的话加计数,不一样把计数写到输出文件里。大体上还是外部排序+归并的思路
2018-06-04 00:27:33 +08:00
回复了 abcyuxue123 创建的主题 程序员 想了一个程序员能 get 的笑话
大家好,我的 id 是‘ 1=1 OR drop table user;
其实所有的 GUI 编程中,都存在类似 1L 所说的消息循环的概念。在 Win32 中,体现为
``` cpp
while((bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
```

GetMessage 由 Win32 的 Windows 的窗口子系统将外部事件转换为消息,发给获得焦点的进程。
进程在得到消息后,使用 TranslateMessage 翻译消息,最后调用 Dispatch 将消息发送给对应的窗口(Windows 里一个进程可以创建许多窗口),在窗口中也有这样的消息循环,根据不同的消息执行不同的操作,这样就完成对外部事件的响应。
认为一个进程如果在 5 秒钟之内没有处理消息,Windows 就认为它失去响应了

> If a message has not been retrieved within 5 seconds, the DWM declares the window to be hung.

https://en.wikipedia.org/wiki/Message_loop_in_Microsoft_Windows
https://msdn.microsoft.com/en-us/library/windows/desktop/dd744765(v=vs.85).aspx
2018-05-27 21:34:16 +08:00
回复了 noli 创建的主题 程序员 会有熟练 Java 的愿意做 dotnet core 后端吗?
wpf 路过。.net 这边特别喜欢的就是 async/await 写并发了。不知道 core 里需要并发时是用 task 比较多呢还是 thread 比较多呢?
顺便问下 lz 公司.net core 的 Jd,做.net framework 久了,想往 core 上发展发展
2018-05-27 14:54:18 +08:00
回复了 whoami9894 创建的主题 C 请教一个 C 语言内存分配的问题
@whoami9894 如果还是不太懂的话,可以看一看 CSAPP 的 Machine-Level Representation of Programs 部分
2018-05-27 14:51:39 +08:00
回复了 whoami9894 创建的主题 C 请教一个 C 语言内存分配的问题
@whoami9894 还是没看懂你的意思。
针对这个情况画了张[简略的图]( https://www.draw.io/?lightbox=1&target=blank&highlight=0000ff&edit=_blank&layers=1&nav=1&title=Untitled%20Diagram.xml#R7Vtdb%2FMmFP41SO2kVrbx52XcpNvFXmlSJ227pAlJ3Doms0mTvr9%2BYOMvIInbOKnbNRctPmA%2BnvMcOBwwgHer3a8pWi9%2FkBmOgWXMdgCOgWWZhm2xf1zyWkgczykEizSaiUK14CH6ics3hXQTzXDWKkgJiWm0bgunJEnwlLZkKE3Jtl1sTuJ2q2u0wIrgYYpiVfpXNKPLQupbXi3%2FDUeLZdmy6QZFziOaPi9SsklEe8CC8%2FxXZK9QWZcYaLZEM7JtiOAEwLuUEFqkVrs7HHNsS9iK9%2B735Fb9TnFCu7wAixdeULwRQ%2F8T76joG30t8chHhPk7BoDhdhlR%2FLBGU567ZQxgsiVdxezJZElRJU4p3u3tllkNlpEIkxWm6SsrUr7gCHwEf2wonre1NsySLMuGJgIhQ4IAi6rqGgSWEDjoMfEUTMaIosFhYnXFxDJ6AMVXQHmgjOuDQ8XpCIrp9wBKoICy890byGRuzNoJH1OWWvAUmPggCEAwAhMHBHcgNPLEGLBuTDwwCkDIslgBD4S2AirlNtlCLqMpecZ3JCYpkyQkYSXDeRTHkgjF0SJhj1MGJ2bykIMdsYluJDJW0WzGm9Gqqq3MHrRlSRR2VW35GmXZzum6KknQUJaCM05mI756cMBilGXRVMdXPFMWj6PjbwzQ0QywlKU4RjR6aVevG7Vo4Q8SsYZrY5DwdSyJ5BnZpFMs3mouC0cqcqV6KEoXmCr15DqoRt1NLaaiFmNniN%2FXNQRbUpSpGoKtncp7MARLg%2Fi9%2BH1dxI%2BvE2cDXHWyvtzMU03bErxvnXjkeion5wwzj6OqZeKCkQF8ny%2FOoQ9GHk%2BMLBBM8sWZCe95mcAFYZAv4AYIzA42k%2BIs%2Boke8wKcz2ve%2F3xETgic8ZusJUaPOA6rfUZpdfVO44C5iP2S6Amo6N3iETxoRzfGLdNS0NKSeRqHyiJkPs%2FwyWp1j1vbpZ1Ux%2FFunWPTT7XmttxUr48JSN3RDBCSiozHMenDHVR999Jrn0UvLWzcfzd8Ox5ys74RdjpiJWI8p3Vu5emLWrI1SkpZQfMVipKr6zKfdbBZpCHO229L%2B%2B8S8MKP6QlacTIlj9k6fzY0ogKuiGeWy%2F8AuvQL%2B%2FdU9KlZpvgbDamXz1Uvr7jkeoXimEyv2BKEyZyLrq8H0V2KM3p1ga5oyD8eiBm%2BEDYhVUgMo08fNjWoPelEI1lUTB%2BbygikGeSTDqg13fCFqxrf5kuMz9iWA5LLHxxZU9ZxtusOkK7kcGYjpfBX3bp7nrS5rFzHhquoDRyysqe7iprYdzRA%2F7nrlkLemr8HEqiJYMwW%2BEE8kpQuyYIkKJ7UUokXDTjwLqJ%2FCzFP%2F8PTbHTsKWEdq7L4Q533hCl9FUeHaEMJE9Xt%2Fk7I%2Bo2hEzaaPEghlC72B0W8oUkEVSWd972dGaduTp4GyDjT6Eg5OXz8Hkycs1DO3E8589KUg%2BVJd4Ny0D2RcvmrozRFr40CIvy0N5rnScFSM5BOkY%2BUd8UOvVZt0YP3xnSgekjw8SePGnvQHGedzR5gh6jyxSGxZUhczcGGFpLqfO4kTNSQbuEN8lit7wPf5WFcn6XH%2FNQ1GAHfzrNcLuSh3jEI%2FM8MYx8npVAXQVXd1nch281zHQDgjuph6gHvg7aqg7n5eEzUAK3pX256s%2BE5lvsheZhQ42HCS3mYUPUwX4ZIOe%2BSlHPPQbkheZjlZNWinHMhypWNNyi3HSDlILwk5dSZX4EkW6I1T85jvBN3BELtdYGMqZUevEXQDPWo58XDvV1gB4qWAsnR6XrBQK2qWtb6v2Jg7z9kbPo%2FPPrf8JqUOwjvjvd9pmsH9p6lT9Rk3FpOeWYrFHcDTyNXr9cOHHV2%2B7bkbubXmyU7Uk39GbKjBiB%2BoCg5aLRfyjodQ8%2Ba%2BlKQCa22Nm7cIZlnh2jJt3kyF7gdyPPl85POxilV5MrhnR5tU3OPT7PIFt9w%2FB9WUufwBT5uqrClHHtIhtrh%2Bt63oVq2dIHclr%2Fx6Wyo8k3089mpegtR%2FwnRJ7e%2BPSc2lfUZwQcujOyx%2FriwKF5%2FwQkn%2FwE%3D)

代码如下:

``` c
int main()
{
int i =0;
int* j = &i;
int* k = (int*)malloc(sizeof(int));
test();
}
void test()
{
int u = 0;
int& v = u;
int w = (int*)malloc(sizeof(int));

}
```

当前执行的是`int w = (int*)malloc(sizeof(int));`。
Data 和 Stack 的内存是完全分开的。函数里定义的变量都是局部变量,分配在当前栈帧上。当函数返回后,栈帧回弹,局部变量的存储空间就被回收。当`test`执行完成,返回到`main`时,u,v,w 的存储空间就被回收了。

但是 Data 区的内存并不会因为函数返回就被回收,而是需要你自己去调用 free。


> 您好还想请教一下:像您说的那种情况,应当如何避免返回局部变量的地址呢?是直接传变量的副本作返回值吗?
直接返回*值*是一种办法,但 C 中传参的拷贝语义,有时为了避免拷贝比较大的结构,也可以让调用者传指针进来,这样可以避免拷贝。还有一种方法,在被调函数中使用 malloc 分配内存。这三种方法孰优孰劣要看具体的情况。我只用过 C 写玩具,也就没法给你建议了。

第二种方法大概是这样的
``` c
typedef struct
{
int[500] a
} very_big_structure;
int main()
{
very_big_structure t;
callee(&t);
}
void callee(very_big_structure* ptr)
{
//使用 ptr
ptr->a[0]=4;
}

```
1  2  3  4  5  6  7  8  9  10 ... 12  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5751 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 02:46 · PVG 10:46 · LAX 19:46 · JFK 22:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.